Configure player

Close

WWDC Index does not host video files

If you have access to video files, you can configure a URL pattern to be used in a video player.

URL pattern

preview

Use any of these variables in your URL pattern, the pattern is stored in your browsers' local storage.

$id
ID of session: wwdc2001-202
$eventId
ID of event: wwdc2001
$eventContentId
ID of session without event part: 202
$eventShortId
Shortened ID of event: wwdc01
$year
Year of session: 2001
$extension
Extension of original filename: mov
$filenameAlmostEvery
Filename from "(Almost) Every..." gist: ...

WWDC01 • Session 202

FireWire Overview

Hardware • 35:13

FireWire, the industry standard interface for digital video cameras and high-performance peripherals, is now standard on all Macs. Learn how to support this revolutionary technology and provide your customers with unmatched peripheral performance, reliability, and simplicity. Hear about 1394b and protocols such as FireWire Audio (61883-6) and SPB-2.

Speakers: Greg Mullins, Eric Anderson

Unlisted on Apple Developer site

Transcript

This transcript was generated using Whisper, it has known transcription errors. We are working on an improved version.

Good afternoon. Hello and welcome to the FireWire Mac OS X Overview. Today, we'd like to review the current status of the FireWire hardware on the Macintosh, summarize the functionality of FireWire on Mac OS X, review some recent developer products and activities, review some details regarding the FireWire technology specifically, and touch on 1394b, the next generation of FireWire. Of course, we'll have some demos too.

First thing I'd like to touch on is that FireWire is available on 100% of the Macintosh platform. That's new for this year. FireWire is an integral part of the Macintosh connectivity strategy. And if you make a FireWire device, you can be sure that the Macintosh product line will provide ports for your device to connect to.

FireWire Hardware Overview. All of the products have 400 megabits per second interface, two ports on the desktop, Those are the iMac, the G4 Tower, and the Cube. And one port on portables, that's the iBook and the PowerBook G4. They all provide cable power, and that's for giving power to hard drives and to hubs.

and they have the six pin connector which is easy to use, it's very durable, and it's the only one that provides cable power. They're also OpenHCI compliant, which is the industry standard, and implement 1394a, which is the latest update to the spec, including bug fixes and performance enhancements.

FireWire on Mac OS X is equivalent in functionality to Mac OS 9.1. including a built-in DV driver for QuickTime applications, DV capture, export, device control. And it also includes built-in mass storage drivers for hard disks, MO drives, CD drives. The default mass storage drivers are reliable, they provide good performance, precludes need for implementing and installing other drivers from third parties. However, it doesn't preclude third party developers to write their own drivers to add additional capabilities such as performance or encryption of the data on the drive.

I'd like to spend some time comparing some terminology of the drivers for FireWire on Mac OS 9 and 10. Initially there's a driver description on Mac OS 9 that can be found in the driver's code fragment. On Mac OS X, that's in the bundle. The driver description is used for driver matching and driver loading.

The scheduling is very similar on Mac OS 9 and Mac OS X for calling into your driver. Mac OS 9 and Mac OS X support synchronous and asynchronous calls. Additionally, on Mac OS X, the driver framework provides a foundation for your driver development. Previously on Mac OS 9, USB, SCSI, FireWire all had their own way of driver matching and loading. On Mac OS X, driver matching and loading is based on common services provided by I/O Kit.

So I'd like to go over a few things that's been happening in the FireWire space over the last year. There's a whole bunch of new peripherals in every category. A wide range from smart card readers, To RAID systems from digital still cameras to television sets. There's an increasing convergence between computers and consumer electronics with respect to FireWire.

I'd like to note one of the devices on the screen in the lower left is the Sanyo ID Shot that uses SPB-2 via FireWire, has lots of storage, supports video stills and motion video, and FireWire was chosen since it is the best interface available for this product. There are a lot of new mass storage FireWire devices supporting between 15 and 20 megabits per second performance with new devices on the way.

Additionally, there are some RAID storage systems. These provide effective, convenient, large-capacity storage systems. They're very friendly and they're very easy to use. And it takes advantage of FireWire's plug-and-play technology. There are DVD players. This one can hold up to 200 DVDs. It's a single highest capacity storage device and 200 DVDs can store well over a terabyte of data.

There are scanners for FireWire. These provide significant increased performance compared to alternative interfaces. They can be shared with any Macintosh on the FireWire bus, and all of the legacy interfaces do not allow this. There are a number of interfaces you can select between for your device to support. And here are some things to consider when selecting your device interface.

If you need more than a megabyte per second, then FireWire is your choice. Often, in standard user configurations, there will be multiple devices on the bus, so you should also consider bandwidth headroom for your device in that scenario. Additionally, if you have a device that requires greater than 700k per second throughput, well, then FireWire is your choice also.

There's been a good deal of talk about the Digital Hub concept lately, and Apple is very excited about using the Macintosh as the Digital Hub. I'd like to go over some topics relating FireWire to the digital hub and how your device can benefit from being part of this. The Mac is the center of the digital hub, and FireWire is the connectivity for this hub. Your devices will play in this arena if they support FireWire, and the applications will benefit from supporting these devices also.

Another thing is customers will gain value with their peripherals because they can use them together in conjunction with the other devices on the FireWire bus. I'd like to introduce Eric Anderson, the manager of the FireWire software team, and we're going to go through a couple of performance demos.

The first thing we'd like to demonstrate is DV Capture on OS X. It's a pretty good real-time example of performance from OS X of the FireWire software stack. So what you're seeing is Play-Through right now on the computer, and let's do a little bit of a capture. It's 30 frames per second frame-accurate capture. So we'll select that clip, do a little playback. You can see how nice and smooth it is. We can also do full screen if you want to see the real performance.

This is new since last year. Last year in Mac OS X we couldn't show you any kind of DV. Now we have iMovie running just like nothing unusual would happen to it. Not that anything unusual did happen to it. The next demo we'd like to show is performance to an external FireWire disk.

It's about 15 megabytes per second. Last year at this time we had an experimental disk driver. Now we are shipping default disk drivers in Mac OS X that are reliable and provide good performance. And we'll see that right now. This is copying from the external drive onto the internal. That's it. That was 129 megabytes. That's the end of the demo. Let's go back to the slides.

So many choices. Okay, I'm going to tell you now a little more detail about FireWire technology. This is the introductory session. We have a whole other session tomorrow at this time about programming for FireWire on Mac OS X. I'm just going to cover some of the basics that everybody needs to know about FireWire.

What is, I'm sure most of you know this, but what is FireWire? Why do we call it a serial bus? What's IEEE 1394? IEEE 1394 is an industry standard that specifies this technology. FireWire is just a name that Apple uses when we talk about 1394. It's a little easier to remember than 1394.

We've made a lot of effort to make this name widely known. It has excellent customer recognition. We would like you to use the name FireWire also. To do that, you need a license from us, which is free. You can also get the FireWire logo from us for free. It's in the same license. There's details in the URL on the Q&A slide.

So what's a serial bus? Why does this matter? A serial bus, as opposed to a parallel interface, means that data flows serially, one bit at a time. This means that the data can go long distances with ease because very few wires are required to carry the signal. On a parallel interface like SCSI or PCI or PC parallel port, many wires carry the signal in parallel.

That works fine for short distances like PCI. But over a long distance it's very difficult because on each of those lines the bits will show up at slightly different times because of different lengths in the cable. A serial bus doesn't have this problem, so a serial bus can go long distances with a thin, friendly, easy-to-use cable.

And why is it called a bus? A bus is a technology where everybody sees the same messages. Everyone is sharing the same communication media. This is different from, say, the internet, where packets are routed from node to node depending on where they're trying to go. On a bus, if I say something, everyone hears it. Generally, most of them will ignore it, but the one person who really wanted the message will listen to it.

Why is a bus good for 1394? A bus is really low-cost because you don't have any routing logic. You simply send the message, everyone gets it. The person who it's for sees that it's for them and receives it. Everyone else ignores it. So a serial bus is a very low-cost, high-performance, customer-friendly solution, and that's why this technology was adopted in FireWire.

So what have we done recently in FireWire? As Greg mentioned, all of our products today have the industry standard 1394 OpenHCI. They all have 1394a-2000, which is the very latest revision of the specification. Nothing changed from a functional point of view, but 1394a brings us bug fixes, clears up ambiguities in the spec, has some performance improvements in the arbitration.

So that's in all of our products now. As Greg mentioned, all of our products provide cable power. The Fire in FireWire can be considered the cable power. This allows you to run hard drives, hubs, cameras, innovative new devices that hopefully some of you will ship. This sets FireWire apart from other interfaces. There's much more power available on FireWire.

All of our products today support all FireWire speeds: 100 megabit for your camcorders, 400 megabit for your hard drives, 200 megabit for that oddball device that somebody shipped that's 200 megabits. They're out there, but they're hard to find. We also support booting from FireWire in all of our devices. This works in Mac OS 9 and it works in Mac OS X. You can use a FireWire hard drive to boot any computer that we sell today. This is more convenient than you might think if you have a tendency to do bad things to your hard drive.

And finally, we have what's called Target Disk Mode in all of our products today. Target Disk Mode is like SCSI Disk Mode. If you remember back when PowerBooks had SCSI interfaces, you could reboot the PowerBook with a special SCSI cable connected, and it would act as if it was a disk drive. You could connect it to another Macintosh through that SCSI port and see all the files on the desktop in a volume.

Well, we don't have SCSI on any of our products anymore, but we have FireWire on all of them. So we've implemented Target Disk Mode in FireWire. It's essentially the same idea, but there's a couple of key differences. SCSI Disk Mode was limited to portable computers. FireWire Disk Mode is available in everything we sell.

Just like booting from FireWire, this is more useful than you may realize. If you haven't tried Target Disk Mode, it's very easy to do. I'm going to demonstrate it. Give it a try. You'll find it may be a very easy way to move files from one computer to another using just a FireWire cable.

Target Disk Mode is implemented in Open Firmware, so you simply reboot the computer and hold down the letter "T". The computer that you're connecting it to needs to be running Mac OS 9 or Mac OS X. If you have Mac OS 9, you need FireWire support version 2.3.3 or later. If you're running Mac OS X, it's just built in and ready to go. So let's switch to the split-screen demos now.

Okay, up here we have two PowerMac G4 systems hiding under this table. One of them is already in target disk mode. I simply held down the letter T while booting it. It displays this delightful dancing FireWire icon to tell you it's in target disk mode. The other machine is running Mac OS X. Connect the FireWire cable between them.

and all the volumes from the machine in target disk mode become available on the machine running Mac OS X. I don't need all three of these. There's three partitions on this drive. They simply show up as three FireWire volumes. I can copy a file over target disk mode just by dragging it like any other file.

So if you haven't tried this, you can see how easy it is. Just take any two of our current products. Doesn't need to be a portable. Reboot one of them, hold down the letter T, wait till you see the dancing FireWire icon, plug it into the other one, and it will show up on the desktop.

There's one other thing we've changed from last year. If you were paying attention, you've already noticed it. This is now much faster than it was last year. It's more than 500% faster. This is that same 129 megabyte file that Greg copied earlier. It's not quite as fast as a native FireWire hard drive, but it's a huge improvement. Okay, let's go back to the slides.

Now, this year we have something completely new to talk about: IEEE 1394b. This is the future of FireWire. 1394b is coming. People have been working on this for a long time. This is an enhancement to the FireWire standard that's backwards compatible but offers a lot of new features. We are going to incorporate 1394b in our products. I'm not allowed to say when, but now would be a good time for you to start making peripherals to connect to us.

1394b brings much higher speed. 800 megabits is the starting point. 1600 megabits is also possible. These are a factor of two improvements over the 400 megabit interface that we have today. Another big new feature in 1394b is the support for long-haul cables. FireWire today is limited to about 4.5 meters per cable. 1394b defines some optional new media, such as optical fiber, that can stretch this by a factor of 10 or more, 50 meters or beyond.

This will really open up FireWire to some new application areas. For example, consider a professional music studio or a theater application where you might want to send digital audio fairly long distances. Or consider an industrial application where, for safety reasons, you might want a hefty amount of distance between your FireWire device and the person who's actually operating the computer.

What makes 1394B faster? It's not just 800 and 1600 megabits. 1394B has a new mode of operation called, "Beta Mode." We didn't simply double the clock rate for what we're doing before. If you're communicating at 800, or 1600, or using any of the new media, you'll be communicating in Beta Mode.

Beta Mode has many arbitration improvements to give higher performance. In particular, the arbitration is done in parallel with communication. So while I'm sending a packet to somebody, the arbitration takes place in parallel for who gets to use the bus next. This means you can get essentially 100% utilization of the bus for payload transfer, whereas today, some small amount of the bus is used up in arbitration. So 800 megabits is not just twice as fast as where we are today, it's even a little bit faster than that.

The 1394b standard has been in work for a long time. It passed its official ballot with the IEEE. The ballot review committee is now incorporating all of the feedback that they got as far as typos and clarifications. It's in its final edit mode right now. This is the time to start working on products with 1394b. If you're a developer and you need silicon to implement a 1394b product, talk to Greg or talk to our developer relations and we'll put you in contact with people who can provide that silicon.

One of the most visible changes to customers from 1394b is that there are going to be some changes to the cable. In particular, there's a new connector for 1394b, which has nine pins, as opposed to the six-pin connector that we have today. At first glance, this may seem undesirable because it's yet another change, but there's a really good reason for this.

All the cables that have been sold to date can't go 800 megabits, and they're not going to work well if you plug them into the new technology. So a new connector that is qualified for this speed has been defined so that it can be attached to new cables that are also qualified for this speed.

The 9-pin connector still uses ordinary copper ports. It's about the same size as the 6-pin connector that we have today. It has 9 pins because they've added individual signal grounds for the twisted pair lines in order to improve the signal quality. There's also a 9th pin for cable detect that gives us some flexibility for future enhancements.

The key thing about this connector is that it's still a copper interface. And this means that if you attach it to silicon that is bilingual, you can have full compatibility with existing FireWire devices, because we use a copper interface on the connection today. A bilingual FireWire port is capable of operating at all of today's speeds and at least one of 1394b speeds, and it will automatically detect what kind of equipment it's connected to and communicate accordingly.

When we have products with this 9-pin connector on them, the customers will need two new kinds of cable. It's really very simple. There will be a cable with a 9-pin connector on one end and a 6-pin connector on the other end. This will enable you to use any of today's peripherals with a 1394b-capable computer.

There's also a cable with a 9-pin connector on one end and a 4-pin connector on the other end. This enables direct connection to all of today's camcorders and other devices that have that little 4-pin connector. This cable is just a piece of wire. It doesn't have any circuits in it. There's nothing expensive about it.

So it should be really very easy for customers to move to 1394b just by replacing one or two of the cables in their system. All of the cables they have today connect to the 1394b. The only thing you need to do is connect the cable to the computer that has 1394b. Of course, there's also a cable with 9-pin connectors at both ends, and that's used for a device and a computer that have 1394b together.

As hardware developers, we hope that you will use the 9-pin connector, but we hope that you'll use it correctly. Because it's a new connector and it represents something better in the future, it may be very tempting to try to use it right away. You must use the 9-pin connector if you have a 1394b PHY, the physical layer interface chip, in your device. You have to use that connector in order to communicate correctly at the new high speeds. It simply won't work on the old connector.

But here's the important point. You must only use the new connector if you have real 1394b silicon in your product. This is really important. We've heard people say, "Oh, I can put that connector on my products today." Don't do that. This will cause big problems for customers, massive confusion.

Do not put the new connector on an old, non-1394b device, and don't put the old connectors on a 1394b device. If your device speaks 1394b, it must have only 1394b connectors. Just let the customer buy the right cable to connect it to whatever they want to connect it for. Don't try to be fancy and use the wrong connector because they can recycle a cable. That will just create chaos. Everybody clear on that? This is going to be a quiz.

Okay, backwards compatibility. We know Macintosh customers love backwards compatibility. 1394b is designed to be fully backwards compatible. All of the significant changes in 1394b are in the physical layer. This is called the PHY. This is the silicon that actually connects to the wire that drives the twisted pair lines and sends bits up and down the cable. New devices that have 1394b in them can be directly connected to old 1394a and even 1394-1995 hardware.

New devices can work with the old hardware at the old hardware speeds. For example, all of the computers we've ever sold with FireWire could connect to a 1394b hard drive. They'd simply connect to it at 400 megabits. A future computer might connect to it at 800 megabits. So you can make a device with 1394b and you're not locking out any part of the market. The millions of machines we've already sold can use your device.

Similarly, old devices and software can work with your new device, and they'll work just as fast as they always have. Your camcorder will continue to work at 100 megabits. Your scanner will continue to work at 400 megabits. Nothing gets any worse if you connect it to 1394B. And if all your devices, or any of your devices, are 1394B, they can communicate amongst themselves at the new high speed.

So it's very flexible, very easy to use. Nobody's been ruled out. It should be a very pleasant experience for customers. Just use the right connector. So what are we changing in software for 1394b? Almost nothing. A lot of software guys had their hand in designing this spec, so what a great outcome.

If you're writing a device driver or you're writing an application, you probably don't have to change anything. People today using our API don't specify the speed they want to communicate at. We simply give them the best possible speed. That continues to be true with 1394b. If your device can do it, we'll send it a packet at 800 or even 1600 megabits. In the core FireWire services, the actual operating system, very few changes are required. We need to add a couple bits to keep track of the new high speeds. That's about it. We expect to have no trouble delivering that well in advance of anyone needing it.

1394b also defines optical fiber, as I mentioned earlier. This is a way to go much greater distances than you can today. 50 meters, even 100 meters, is defined at various speeds on 1394b with optical fiber. This is not for everybody. A 100-meter cable, 100-meter FireWire cable is great.

But if I'm burning DVDs on my FireWire DVD drive, it's not going to do me much good to put the drive 300 feet away from my computer. That's kind of inconvenient. Now, if I've got a FireWire security camera, or maybe a FireWire microphone out in the studio, that would be a great use for fiber. But a lot of devices don't need this.

We recommend that most devices simply use the copper connector because customers who need fiber can purchase a FireWire hub that has copper on one side and fiber on the other side. 1394b is designed so that all that's needed in such a hub is a PHY plus whatever fiber optic transceiver you need for the kind of fiber that's in use. So the hub does not have to be expensive.

Anyone who wants to go long distance, even with their DVD burner, could get two of these hubs, run fiber between them, and go great distances. But most devices really aren't going to need this. So just consider fiber as something that enables new applications, not something that has to be on every camcorder. I certainly don't expect to see it on any camcorders.

Okay, I'd like to ask Greg to come back up. Greg's going to tell you about the resources that we make available to you, FireWire developers, in order to encourage you to develop hardware and software that uses FireWire on Macintosh. Once Greg's done, then we will both be back for Q&A.

I'd like to point you guys at some resources that are available to help give you some information for doing FireWire software development. One of the most important things is our software development kit, and that can be found at the URL listed on the page. Additionally, we have email resources that you can utilize. One of them is [email protected], which basically goes right to me. And if you have some questions that you want to talk directly to Apple about, you can send the question there.

It tends to be less technical than the technical FireWire questions mailing list, which is comprised of both Apple engineering and third-party software developers, so you can get some fairly quick responses to some of your more difficult technical questions by sending them to that mailing list. Additionally, I wanted to mention one thing about the SDK. It contains two new debugging tools that were previously unavailable with the SDK, Firebug and Firecracker, which are very useful for debugging your FireWire devices.

I'd like to summarize some things to do for you to generate your FireWire device to fit into the FireWire world much more easily. First of all, please take advantage of bus power. We provide it. It makes a much better customer experience, and the product is much more successful in the marketplace by using BuzzPower.

We provide bus power on all of our products, including portables, and you can see the values there. Additionally, take advantage of the multi-host topology. This is very useful for FireWire devices such as scanners or printers where you can connect it to the FireWire bus and any Macintosh on the FireWire bus can utilize the device.

Additionally, please recognize that the 1394a specifies a range of 8 to 30 volts. You should tolerate the full range within this spec and preferably operate in this range because you will encounter devices on the bus You will encounter devices on the bus in this range of the spec.

Some other things to do: Use the standard 6 or 9 pin connector only. Use the 400 megabit per second PHY or faster for your devices. Additionally, you should provide two or three connectors for large devices. Customers enjoy daisy-chaining devices together and you don't want to be a dead end in the firewire bus. Previous history SCSI devices that had only one SCSI port on them didn't fare too well in the marketplace because customers were really interested in daisy-chaining these devices together. And we're experiencing a similar trend with FireWire devices.

Also, please use a unique serial number. This is very important. For example, if you have two devices, let's say if you're a disk drive manufacturer, you have two drives. If they don't have unique serial numbers, the drivers will not be loaded properly by the operating system because that's how we go about identifying the devices on the bus.

Additionally, during a bus reset, the unique serial number is very important because this is how the FireWire bus configures and knows about the devices on the FireWire bus itself. One final note, please don't use the minimal ROM. That's the 4-byte ROM. One of the main reasons we recommend against using that is there is no GUID included in the minimal ROM.

Please take advantage of the FireWire logo licensing. As Eric mentioned, it's free and it's available. Additionally, for the Mac logo, you can license that and get it at the same location that you can get the FireWire logo. Market research has shown that the FireWire logo is very recognizable, more recognizable than other 1394 logos, and customers tend to purchase products which have the FireWire logo. So take advantage of that.

I'd like to review some related sessions that we're going to be having this week. One is a FireWire in-depth session, which is going to be at the Civic Auditorium. That's actually across the street and will be there tomorrow afternoon. There's a feedback forum on Thursday. And finally, there's a FireWire Plugfest on the Apple campus in the Piano Bar.

Come by, look at a bunch of devices, have some fun, and drink some beer. Bring? Oh, bring devices too. It's a plug fest. You're supposed to bring devices. Here's some contact information. You can send an email to me at [email protected] or additionally my counterpart, Greg Keithley, who's the FireWire and USB technology manager. You can contact him directly also.