WO1998021640A1 - Hot swapable drive/dock with software drivers for ide interface - Google Patents

Hot swapable drive/dock with software drivers for ide interface Download PDF

Info

Publication number
WO1998021640A1
WO1998021640A1 PCT/US1997/021788 US9721788W WO9821640A1 WO 1998021640 A1 WO1998021640 A1 WO 1998021640A1 US 9721788 W US9721788 W US 9721788W WO 9821640 A1 WO9821640 A1 WO 9821640A1
Authority
WO
WIPO (PCT)
Prior art keywords
block device
block
computer
docking module
driver software
Prior art date
Application number
PCT/US1997/021788
Other languages
French (fr)
Inventor
Vincent Ooi
Original Assignee
Agate Technologies, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agate Technologies, Inc. filed Critical Agate Technologies, Inc.
Priority to AU53653/98A priority Critical patent/AU5365398A/en
Publication of WO1998021640A1 publication Critical patent/WO1998021640A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4081Live connection to bus, e.g. hot-plugging
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B33/00Constructional parts, details or accessories not provided for in the other groups of this subclass
    • G11B33/12Disposition of constructional parts in the apparatus, e.g. of power supply, of modules
    • G11B33/125Disposition of constructional parts in the apparatus, e.g. of power supply, of modules the apparatus comprising a plurality of recording/reproducing devices, e.g. modular arrangements, arrays of disc drives

Definitions

  • the present invention relates generally to removable computer block devices, such as hard drives and CD-ROMs, and more particularly to a computer driver software and programmed docking module providing hot swapability of block devices for use with standard PCs having an Integrated Drive Electronics (IDE) interface.
  • IDE Integrated Drive Electronics
  • Removable hard disk drives and other devices have been developed, but they generally require turning the computer off, or are part of a specially designed computer system for that purpose, and are incompatible with the large quantity of existing computers which interface with the hard drive through what is termed an Integrated Device Electronics (IDE) interface.
  • IDE Integrated Device Electronics
  • U.S. Pat. No. 5,483,419 by Kaczeus, Sr. et al is disclosed in U.S. Pat. No. 5,483,419 by Kaczeus, Sr. et al .
  • the drive docking module of this invention is a fully hardware enabled device, and as such is complex structurally. Due to cost and compatibility factors, prior art hot swapable drives are not commonly used. There is a need for an improved, structurally more simple hot swapable system that " can be incorporated on the large quantities of existing IDE interface based computers .
  • a preferred embodiment of the present invention includes , a system providing hot swapability of computer block devices such as hard disk drives, having driver software designed for use with existing operating systems on computers having an IDE interface.
  • a docking module has a connection to a computer IDE interface, and a PCMIDE connector for reception of a block device, such as a hard disk drive.
  • a programmable logic device (PLD) with accompanying circuitry is included in the docking module, with a program for providing block device data required by the driver software, which in turn provides commands to the PLD, which responds with corresponding block module control, for inserting and ejecting a block device without the need to power down the computer system.
  • PLD programmable logic device
  • An advantage of the present invention is that it provides a hot swapable block device system that is compatible with current PCs having an IDE port.
  • a further advantage of the present invention is that it provides a docking module system that is software driven, lower in cost and mechanically simple.
  • a further advantage of the present invention is that it provides a docking module with a smooth block device eject system.
  • Fig. 1 illustrates the major components of the hot swapable system
  • Fig. 2 is a flow chart describing the initialization performed by the driver software
  • Fig. 3 is a flow chart detailing the four second poll/check routine
  • Fig. 4 is a block diagram of the docking module circuitry
  • Fig. 5 shows constructional details of the docking module
  • Fig. 6 is a schematic of the programmed PLD
  • Fig. 7 shows the escape sequence logic, and Dock Status and Dock Control registers in the PLD
  • Fig. 8 is a detailed schematic of the dock circuitry.
  • a preferred embodiment 10 of the present invention wherein a PC 12 is connected to a docking module 14 by way of an Integrated Drive Electronics (IDE) interface 16.
  • IDE Integrated Drive Electronics
  • PLD programmable logic device
  • the system 10 is designed so that no loss of data is incurred in the operation.
  • the details of the driver software and programming of the PLD, as well as features of the docking module will be fully explained in the following text and figures of the drawing.
  • the block device 18 can be a hard disk drive, and in such a case, the docking module 14 is designed to be compatible with either a 2.5 inch or 3.0 inch generic hard disk drive . Docking modules 14 designed for compatibility with other block devices 18 are also included in the spirit of the present invention, such as CD-ROMs, etc.
  • the special driver software and PLD programming are designed to be compatible with any one or more of various industry standard operating systems, such as DOS-Windows, Windows "95", or Windows NT.
  • the system 10 is designed to work with any IBM compatible PC architecture having an Integrated Device Electronics (IDE) interface.
  • IDE Integrated Device Electronics
  • a user inserts a block device 18, such as a hard disk drive (HDD) into the docking module 14.
  • a block device such as a hard disk drive (HDD)
  • the HDD will remain in a no-spin state until the special driver software in the computer 12 detects its presence by way of a first control byte, from the PLD in the docking module 14, by way of the IDE interface 16.
  • the first control byte will be fully described in the following description in reference to the figures of the drawing..
  • the driver software directs the computer 12 to transmit a second control byte sequence to the PLD in the docking module 14 by way of the IDE 16 to direct the PLD to turn on the HDD.
  • an inquiry command is sent by the driver software to the docking module PLD to collect the HDD's information and geometry.
  • Information and Geometry pertains to information returned from issuing an ATA Identify Command. It includes pertinent data such as Number of Cylinders, Heads, Sectors on the disk, Manufacturer's Name, Serial Number, etc. This information is used to correctly set up the drive in the system.
  • the driver software then sends a signal (a read status command) to the PLD to check for defects in the HDD. If the HDD is defective, the driver software indicates this status to the user on the computer display 20. Alternatively, in the event of a defective HDD, the software can send a "reject" command signal to the PLD to eject the HDD from the docking module.
  • the driver software then assigns a place in the computer memory for the HDD configuration information. This place in memory is called “a device control block” (DCB) .
  • the computer 12 places the block device information there, where it is accessible to the operation system (OS) of the computer.
  • the OS is then directed to recognize the presence of the HDD, and in response completes the recognition status by adding drive letters received from the driver software to the operating environment of the computer. A system operator can then use these drive letters to access the HDD.
  • the storage device (HDD in this example) can be used as if it were any other HDD in the computer system.
  • the present invention also applies to more than one block device 18. This can be achieved if the computer system is equipped with an additional channel. Most of today's computer systems are shipped with a Primary and a Secondary Channel, each capable of connecting two disk drives, one of which is configured as the Master drive and the other configured as the Slave drive. This allows a total of 4 block devices to be connected in most systems today. For additional channels, a suitable hardware controller has to be added to add more channels to the system. These channels are named Tertiary and Quad Channels and can connect another 4 block devices.
  • the user To initiate the removal of the block device 18, the user must ⁇ first input a command to the computer 12 to instruct the device software to begin the block device 18 removable (eject) sequence.
  • a command may be made via the computer 12 keyboard 22 by simultaneously pressing (for example) "Ctrl-Alt-Fl” , or by pushing an "eject" button installed on the docking module to send a "reject" command signal to the computer 12.
  • the driver software can also be programmed to respond to a particular keyboard 22 input. Once the driver software receives the command to eject the block device, an eject routine will be implemented. This routine will be fully explained in the following description.
  • Fig. 2 illustrates that the first function performed by the driver software is for the purpose of determining if a docking module 18 is connected to the computer 12. This is indicated by block 24. If there is no connection, the check is repeated, as indicated by line 26.
  • the driver software determines that a docking module is connected, as indicated by the "yes" 28, the driver software responds by installing and starting a poll routine 30 which checks the status of the docking module 18 on a periodic basis, for example every 4 seconds.
  • the poll routine 30 is more fully described in Fig. 3.
  • Block 32 indicates that the poll routine is initiated every four seconds.
  • Block 34 simply means that the routine is repeated, beginning again at 36 after the set time interval.
  • Block 38 indicates that the driver software checks the signals provided by the docking module PLD to determine if a block device 18 is inserted in the docking module 14. If the signal indicates "yes", as noted at 40, that there is a block device 18 inserted, the software proceeds to check for a request to eject the block device (block 42) . As discussed above, a ⁇ request to eject can come from a variety of places, including a switch on the docking module, or a computer keyboard 22 input, etc.
  • the driver software checks the computer operating system to determine if the block device is currently active in a process (block 46) . If it is currently active, as indicated at 48, the eject is aborted and the poll routine is started over after the prescribed time interval. If the block device is not currently active 50, the driver software proceeds with the process of ejecting the block device (block 52) , after which the poll routine is repeated.
  • the eject routine (block 52) will be more fully explained in the following. Referring back to block 42, if no eject command is found, as indicated at 54, the.
  • driver software checks the current status of the docking module relative to the status recorded in the computer memory, to determine if the status is the same (block 56) . " If the status has changed 58, it indicates that there was no block device in the docking module as of the time of the last four second poll routine, since there now is a block device. In this case, the driver software sets aside a block of memory (block 60) in the computer 12 for the block device 18 data. This memory block is noted as a “device control block (DCB) " . With the DCB created, the driver software can direct that the data from the docking module PLD be entered in the DCB. This is indicated by the words "mount block device” in block 62. The OS then has the information it needs to recognize the existence of the block device.
  • DCB device control block
  • the four second poll routine is then continued. If the result of block 56 is that the block device status has not changed since the last four second poll routine (indicated at 64), it means that there was a disk inserted during the last check and the four second poll routine continues. Referring back to block 38, if a block device is not inserted (as indicated at 72) , the drive software compares new data from the docking module with the DCB data from the last poll routine. This is indicated by block 74. If there was a block device inserted at the time of the previous poll, the block drive status has changed 76, since there is none inserted now, as indicted at 76.
  • a 50 pin PCMIDE connector 84 is for connection with a mating connector of a typical block device 18.
  • the specific connector type depends on the mating connector of the specific block device, and these variations are included in the spirit of the present invention.
  • a complex programmable logic device (PLD) 86 is shown with an input bus 88 from connector 84, and an output bus 90 to connector 82.
  • PLD programmable logic device
  • a line 100 is shown extending from the eject driver 98 to a cam 102. Line 100 represents.
  • muscle wire for moving the cam 102 for the purpose of ejecting a block device.
  • Full details of the muscle wire ejection device will be given in the following discussion.
  • the source of the eject command was previously discussed, and is received from the computer through connector 82 and bus 90 to the PLD if the keyboard 22 is used.
  • the eject button 94 can be used to send the eject message to the PLD by way of line 92, and then to the computer by way of bus 90.
  • a bus 104 is shown from connector 84 via bus 88 to bus 106 for direct transfer to the computer via connector 82. Control and data signals are connected via bus 88, and bus 104 shares part of the lower order 8 bits of data with the data bus 106.
  • Data bus 106 is a 16 bit wide bus that transfers data back and forth between the Host (computer 12) connected via the IDE connector 82 and the Drive connected via the PCMIDE connector 84. Bus 106 provides data flow directly to and from the block device 18 and computer 12.
  • Block 108 represents a connector for power supply input to empower the eject driver, PLD, etc. The interconnections are not shown.
  • Block 110 represents a jumper block allowing master-slave selection or cable select operation.
  • the ATA specification (a standard specification in the industry) allows drives to be configured as a master or a slave depending on jumper settings that are assigned on the block device. When a device is configured as a master device it will appear as the first device in the chain on the Initial Program Load (IPL) of the system.
  • IPL Initial Program Load
  • FIG. 5 is a top, cut away view of the docking module 14, for clarification of the eject mechanism and general layout.
  • the outline of the module 14 as shown is configured to fit in a standard 5.25 inch computer bay.
  • the outline can be configured differently, including a stand alone module as indicated in the block diagram of Fig. 1, wherein the interface 16 appears to be a cable assembly.
  • the interconnection type can be whatever is needed to conform to the configuration of a particular computer 12.
  • the components of Fig. 4 are also shown in Fig. 5, except for the PLD 86, the eject driver 98 and associated bus structure. This circuitry is all laid out on a circuit board and generally in the location 114.
  • Fig. 4 shows the IDE connector 82 for connection to a cable leading to the computer 12, and the PCMIDE connector 84, which interconnects with the block device.
  • the jumper block 110 and power connector 108 are symbolically indicated.
  • a floppy disk retention device 114 is indicated, which is a standard type of device and needs no further explanation.
  • the overall physical hardware of the docking module of Fig. 5 is fairly standard in form.
  • An exception to this, of course, is the inclusion of the novel circuity as shown in Fig. 4.
  • Another exception is a novel block device eject mechanism utilizing. a "muscle wire" 100 for rotating the CAM 102 to move an eject tray 116 in the direction 118 to eject an inserted block device 18.
  • the term “muscle wire” is used to describe a shape memory alloy actuator wire made of " nickel - titanium. This small diameter wire contracts like a muscle when electrically driven.
  • the length of the wire 100 from its connection at 120 to the CAM 102 to its connection at 122 to a terminal 124 is calculated so as to provide the required amount of contraction with a prescribed current to rotate the CAM 102 moving the end 126 in the direction 118 to push against plate 128, causing the tray 116 to move in the direction 118 and eject a block device 18 positioned thereon from the module 14.
  • the terminal 124 provides electrical contact, carrying current from the eject driver 98, and also provides structural, connection to the module 14 housing 130.
  • the connection 120 provides physical connection to the CAM 102 and an electrical connection through the CAM, constructed of electrically conductive material to complete the current return path to a conductive material such as a metal housing 130 member.
  • the action provided by the "muscle wire” 100 is a gradual contraction, allowing a block device to be smoothly ejected from the housing 130.
  • the preferred manufacturer of the programmable logical device (PLD) is Lattice. Their part number ispLSI2032-80LT, is a 44 pin TQFP device.
  • This PLD is designed to function with an Integrated Drive Electronics interface, and conforms to a standard set for manufacturers of hard disk drives known as ATA2.
  • the PLD is a EEPROM device and the particular programming according to the present invention results in a PLD internal circuitry as shown in
  • An escape sequence logic section 132 receives input types I, J, K, L and M from the host computer 12, and responds by providing an enabling signal to enable access to two registers, noted as Dock Status Register 134 and a Dock Control Register 136, shown in block form in Fig..7.
  • the programmed functionality of the PLD includes mapping both the Dock Control Register 136 and Dock Status Register 134 in task file address space, conforming to Advanced Technology (AT) standards, in task file address space when the escape sequence is active.
  • AT Advanced Technology
  • the active state of the dock is achieved via writing a sequence of register reads and writes in the following order: Write to register 1F2 or 172 Read from register 1F1 or 171 Write to Register 1F2 or 172
  • Registers 1F1 and 1F2 are registers within the block device. It also includes provision of an escape sequence for enabling the Dock Control Register 136 and Dock Status Register 134 and reflects and latches the information contained in the Dock Status Register 134.
  • the programmed functionality includes provision of the Dock Control Register (a write register) for issuing control commands to the docking module 14.
  • the docking module 14 is normally uninitialized and does not, for example, permit a block device 18 such as a disk drive (HDD) to spin up when it is inserted into the docking module 14. This is true until the device software, normally loaded during the operating system boot process, provides the necessary initialization routine including the escape sequence and correct control commands to the PLD 86. This process will, in the case of a HDD, spin the drive up and enable the HDD's task file so that it can operate as a d sk drive accessible to the system.
  • the PLD 86 performs this task by intercepting commands issued from the host computer to the task file register by mapping its address space into the AT task file address space.
  • the docking module PLD 86 reads the contents of inputs 138, 140 and 142 (Fig. 7. and 6) arranged to connect to registers in, for example, an inserted HDD.
  • the preferred register for this is what is known as a 1F2 or 172 register. If the HDD is inserted, the intercepted/red data will so indicate. All read and write commands to the HDD are done through the 1F2 register. This procedure (escape sequence) is determined by reading what is known as a 1F1 or 171 HDD register. At this point the computer 12 can access the HDD directly.
  • the Dock Control Register 136 as shown in Fig. 7 provides the computer driver software the capability to control the following four functions listed by bit number: 1.
  • the Dock Status Register 134 provides that computer 12 with the following status bits as indicated in Fig. 7: Rsvd Not Used, set to 1 Button Latched to 1 value when the front panel button is pressed. Cleared when the Error Register (register 1F2 in HDD) is read while in Dock access mode or a HReset is received.
  • the front panel button is a button accessible by the user, and when depressed activates button 94.
  • SEject Reflects the state of the SEject bit in the last Dock Control register write. Cleared when the drive has been ejected or on HReset .
  • the HRESET pin is located in Fig. 6, item 152, the function of this pin is to reflect the state of host reset to the dock so that a similar reset, drive reset (DRESET 154) can be issued to the drive.
  • Setting and clearing the BDenable bit by writing to the Dock Control register is used to validate the presence of a dock.
  • DREnable Shows state of Drive Enable bit. Did Identical to BDisable . This bit is used to identify the new dock versus the old dock.
  • MC Media change (meaning block device status change as used in Fig. 3) is latched when INSERT is asserted. Cleared when the Error Register is read while in Dock access mode or a HReset is received. Drlns Reflects the state of the INSERT-signal . The bit has a value of I when INSERT - is asserted (low) .
  • registers B and C are indicated within the dashed line and have connections D0-D6 interconnecting to connector 84 (Fig. 4) to the HDD or i.e. block device 18. The control and status registers are actually sharing a common address space 1F2 in the HDD/block device.
  • bits DO - D6 are thus a bi-directional bus that provides both read and write capability.
  • the lines 138, 140 and 142 are lines to bits DRenable 144, DReset 146, and SEject 148 respectively.
  • the BDisable bit 150 is connected to bit connection D4.
  • D5 corresponds to the Bdisable in the dock status register B, this bit when set will cause the button to deactivate and thus not allow any physical ejection via the eject switch 94.
  • Input 152 effects, a system reset activating the drive reset output 154.
  • Output 156 leads to the HDD providing a device enable in response to input to the DEnable or DRenable bits.
  • Outputs 158 and 160 are sent to the block device and function to select a particular file task register in the block device/HDD in response to inputs I, J and K.
  • the LEDln output 166 is for activation of an LED indicating an active drive, and is responsive to the input on DASRn 164.
  • the eject button 162 receives input from the eject button 94 (Fig.
  • Fig. 7 shows a block diagram of the Dock Status Register 134, Dock Control Register 136, escape sequence logic circuit 132 and numerous important inputs and outputs also shown in detail in Fig. 6.
  • Fig. 8 is a detailed schematic of the complete circuitry of Fig.
  • Connector 172 is for connection to the "muscle wire" .
  • Connector 174 is for input of programming data to the PLD 86.
  • An LED connector 176 is shown for connection to an LED, not shown but preferably on the docking module 14, for indicating when a block device is inserted.

Abstract

A system (10) providing hot swapability of computer block devices (18) such as hard disk drives, having driver software designed for use with existing operating systems on computers having an IDE interface. A docking module (14) has a connection to a computer IDE interface, and a PCMIDE connector for reception of a block device (18), such as a hard disk drive. A programmable logic device (PLD) with accompanying circuitry is included in the docking module, with a program for providing block device data required by the driver software, which in turn provides commands to the PLD, which responds with corresponding block module control, for inserting and ejecting a block device without the need to power down the computer system.

Description

Speci f ication
HOT SWAPABLE DRIVE/DOCK WITH SOFTWARE DRIVERS FOR IDE INTERFACE
BACKGROUND OF THE INVENTION
Field of the Invention The present invention relates generally to removable computer block devices, such as hard drives and CD-ROMs, and more particularly to a computer driver software and programmed docking module providing hot swapability of block devices for use with standard PCs having an Integrated Drive Electronics (IDE) interface.
Description of the Prior Art Most personal computers have permanently installed hard drives. Situations arise, however, when a removable hard drive is desirable. For example, if a permanently installed hard drive should fail, replacement is a time consuming process. It is also beneficial on occasion to be able to easily and quickly remove a hard drive from one computer and install it on another. In some cases, the capacity of a given hard drive is not adequate for all required applications. In such a situation, it would be a great benefit to have a number of hard drives available, with a hot swapable system, so as to be able to install a particular one with the required data and space. Removable hard disk drives and other devices have been developed, but they generally require turning the computer off, or are part of a specially designed computer system for that purpose, and are incompatible with the large quantity of existing computers which interface with the hard drive through what is termed an Integrated Device Electronics (IDE) interface. For example, one such specially designed hot swapable system is disclosed in U.S. Pat. No. 5,483,419 by Kaczeus, Sr. et al . The drive docking module of this invention is a fully hardware enabled device, and as such is complex structurally. Due to cost and compatibility factors, prior art hot swapable drives are not commonly used. There is a need for an improved, structurally more simple hot swapable system that "can be incorporated on the large quantities of existing IDE interface based computers .
SUMMARY OF THE INVENTION It is therefore an object of the present invention to provide an improved system for hot swapping block devices. It is a further object of the present invention to provide a simpler, lower cost docking module for hot swapping block devices, such as hard disk drives. It is a further object of the present invention to provide a low cost system based on computer driver software and a programmable docking module for use with current computers employing an IDE (zero cost) interface. Briefly, a preferred embodiment of the present invention includes, a system providing hot swapability of computer block devices such as hard disk drives, having driver software designed for use with existing operating systems on computers having an IDE interface. A docking module has a connection to a computer IDE interface, and a PCMIDE connector for reception of a block device, such as a hard disk drive. A programmable logic device (PLD) with accompanying circuitry is included in the docking module, with a program for providing block device data required by the driver software, which in turn provides commands to the PLD, which responds with corresponding block module control, for inserting and ejecting a block device without the need to power down the computer system. An advantage of the present invention is that it provides a hot swapable block device system that is compatible with current PCs having an IDE port. A further advantage of the present invention is that it provides a docking module system that is software driven, lower in cost and mechanically simple. A further advantage of the present invention is that it provides a docking module with a smooth block device eject system.
IN THE DRAWING Fig. 1 illustrates the major components of the hot swapable system; Fig. 2 is a flow chart describing the initialization performed by the driver software; Fig. 3 is a flow chart detailing the four second poll/check routine; Fig. 4 is a block diagram of the docking module circuitry; Fig. 5 shows constructional details of the docking module; Fig. 6 is a schematic of the programmed PLD; Fig. 7 shows the escape sequence logic, and Dock Status and Dock Control registers in the PLD; and Fig. 8 is a detailed schematic of the dock circuitry.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT Referring now to Fig. 1 of the drawing, there is shown a preferred embodiment 10 of the present invention wherein a PC 12 is connected to a docking module 14 by way of an Integrated Drive Electronics (IDE) interface 16. Special driver software loaded into the computer 12, in cooperation with a programmable logic device (PLD) within the docking module 14, provides a hot swapable system 10 wherein a block device 18 can be inserted into or ejected from the docking module 14 without turning the computer off. The system 10 is designed so that no loss of data is incurred in the operation. The details of the driver software and programming of the PLD, as well as features of the docking module will be fully explained in the following text and figures of the drawing. The block device 18 can be a hard disk drive, and in such a case, the docking module 14 is designed to be compatible with either a 2.5 inch or 3.0 inch generic hard disk drive . Docking modules 14 designed for compatibility with other block devices 18 are also included in the spirit of the present invention, such as CD-ROMs, etc. The special driver software and PLD programming, are designed to be compatible with any one or more of various industry standard operating systems, such as DOS-Windows, Windows "95", or Windows NT. The system 10 is designed to work with any IBM compatible PC architecture having an Integrated Device Electronics (IDE) interface. As mentioned in the background art, hot swapability in the past has been confined to either special, non IDE interface systems, or special, costly hardware designs. In operation, a user inserts a block device 18, such as a hard disk drive (HDD) into the docking module 14. Once inserted, the HDD will remain in a no-spin state until the special driver software in the computer 12 detects its presence by way of a first control byte, from the PLD in the docking module 14, by way of the IDE interface 16. The first control byte will be fully described in the following description in reference to the figures of the drawing.. In response to the first control byte, the driver software directs the computer 12 to transmit a second control byte sequence to the PLD in the docking module 14 by way of the IDE 16 to direct the PLD to turn on the HDD. As the HDD powers on, an inquiry command is sent by the driver software to the docking module PLD to collect the HDD's information and geometry. Information and Geometry pertains to information returned from issuing an ATA Identify Command. It includes pertinent data such as Number of Cylinders, Heads, Sectors on the disk, Manufacturer's Name, Serial Number, etc. This information is used to correctly set up the drive in the system. The driver software then sends a signal (a read status command) to the PLD to check for defects in the HDD. If the HDD is defective, the driver software indicates this status to the user on the computer display 20. Alternatively, in the event of a defective HDD, the software can send a "reject" command signal to the PLD to eject the HDD from the docking module. If the HDD is found to be acceptable, the driver software then assigns a place in the computer memory for the HDD configuration information. This place in memory is called "a device control block" (DCB) . The computer 12 then places the block device information there, where it is accessible to the operation system (OS) of the computer. The OS is then directed to recognize the presence of the HDD, and in response completes the recognition status by adding drive letters received from the driver software to the operating environment of the computer. A system operator can then use these drive letters to access the HDD. At this stage, the storage device (HDD in this example) can be used as if it were any other HDD in the computer system. It should be noted here, that although the above, and following discussions are directed toward a single block device 18 (HDD, etc.), the present invention also applies to more than one block device 18. This can be achieved if the computer system is equipped with an additional channel. Most of today's computer systems are shipped with a Primary and a Secondary Channel, each capable of connecting two disk drives, one of which is configured as the Master drive and the other configured as the Slave drive. This allows a total of 4 block devices to be connected in most systems today. For additional channels, a suitable hardware controller has to be added to add more channels to the system. These channels are named Tertiary and Quad Channels and can connect another 4 block devices. To initiate the removal of the block device 18, the user must first input a command to the computer 12 to instruct the device software to begin the block device 18 removable (eject) sequence. Various ways of inputing such a command are possible, and are included in the spirit of the present invention. For example, the command may be made via the computer 12 keyboard 22 by simultaneously pressing (for example) "Ctrl-Alt-Fl" , or by pushing an "eject" button installed on the docking module to send a "reject" command signal to the computer 12. The driver software can also be programmed to respond to a particular keyboard 22 input. Once the driver software receives the command to eject the block device, an eject routine will be implemented. This routine will be fully explained in the following description. Referring now to Figs . 2 and 3 , the programming of the driver software is now more, fully explained. Fig. 2 illustrates that the first function performed by the driver software is for the purpose of determining if a docking module 18 is connected to the computer 12. This is indicated by block 24. If there is no connection, the check is repeated, as indicated by line 26. When the driver software determines that a docking module is connected, as indicated by the "yes" 28, the driver software responds by installing and starting a poll routine 30 which checks the status of the docking module 18 on a periodic basis, for example every 4 seconds. The poll routine 30 is more fully described in Fig. 3. Block 32 indicates that the poll routine is initiated every four seconds. The selection of four seconds is according to the preferred embodiment, but other intervals are also included in the spirit of the present invention. The return block 34 simply means that the routine is repeated, beginning again at 36 after the set time interval. Block 38 indicates that the driver software checks the signals provided by the docking module PLD to determine if a block device 18 is inserted in the docking module 14. If the signal indicates "yes", as noted at 40, that there is a block device 18 inserted, the software proceeds to check for a request to eject the block device (block 42) . As discussed above, a request to eject can come from a variety of places, including a switch on the docking module, or a computer keyboard 22 input, etc. If one of the inputs indicates that an eject is desired 44, the driver software checks the computer operating system to determine if the block device is currently active in a process (block 46) . If it is currently active, as indicated at 48, the eject is aborted and the poll routine is started over after the prescribed time interval. If the block device is not currently active 50, the driver software proceeds with the process of ejecting the block device (block 52) , after which the poll routine is repeated. The eject routine (block 52) will be more fully explained in the following. Referring back to block 42, if no eject command is found, as indicated at 54, the. driver software checks the current status of the docking module relative to the status recorded in the computer memory, to determine if the status is the same (block 56) . " If the status has changed 58, it indicates that there was no block device in the docking module as of the time of the last four second poll routine, since there now is a block device. In this case, the driver software sets aside a block of memory (block 60) in the computer 12 for the block device 18 data. This memory block is noted as a "device control block (DCB) " . With the DCB created, the driver software can direct that the data from the docking module PLD be entered in the DCB. This is indicated by the words "mount block device" in block 62. The OS then has the information it needs to recognize the existence of the block device. The four second poll routine is then continued. If the result of block 56 is that the block device status has not changed since the last four second poll routine (indicated at 64), it means that there was a disk inserted during the last check and the four second poll routine continues. Referring back to block 38, if a block device is not inserted (as indicated at 72) , the drive software compares new data from the docking module with the DCB data from the last poll routine. This is indicated by block 74. If there was a block device inserted at the time of the previous poll, the block drive status has changed 76, since there is none inserted now, as indicted at 76. This result directs the driver software to de-allocate/de- assign the assigned block of memory (DCB) for the previously assigned inserted block device. This is indicated by the word "dismount" in block 78. The four second poll routine is then continued. If the result of the status check 74 is that there was no disk at the time of the previous poll, then since there still is no disk, the status has not changed (as indicated at 80) , and no action need be taken. The four second poll routine then continues. Referring now to Fig. 4 of the drawing, a block diagram is shown illustrating the electronics inside the docking module 14. A 40 pin Integrated .Drive Electronics (IDE) interface connector 82 is used to connect to a cable assembly for connection to the computer 12. This is generally indicated as IDE interface 16 in Fig. 1. A 50 pin PCMIDE connector 84 is for connection with a mating connector of a typical block device 18. The specific connector type depends on the mating connector of the specific block device, and these variations are included in the spirit of the present invention. A complex programmable logic device (PLD) 86 is shown with an input bus 88 from connector 84, and an output bus 90 to connector 82. In addition, there is a bus 92 connecting an eject switch 94 to the PLD 86, and there is an output bus 96 connecting the PLD 86 to an eject driver 98. A line 100 is shown extending from the eject driver 98 to a cam 102. Line 100 represents. a "muscle wire" for moving the cam 102 for the purpose of ejecting a block device. Full details of the muscle wire ejection device will be given in the following discussion. The source of the eject command was previously discussed, and is received from the computer through connector 82 and bus 90 to the PLD if the keyboard 22 is used. Alternatively, the eject button 94 can be used to send the eject message to the PLD by way of line 92, and then to the computer by way of bus 90. A bus 104 is shown from connector 84 via bus 88 to bus 106 for direct transfer to the computer via connector 82. Control and data signals are connected via bus 88, and bus 104 shares part of the lower order 8 bits of data with the data bus 106. Data bus 106 is a 16 bit wide bus that transfers data back and forth between the Host (computer 12) connected via the IDE connector 82 and the Drive connected via the PCMIDE connector 84. Bus 106 provides data flow directly to and from the block device 18 and computer 12. Block 108 represents a connector for power supply input to empower the eject driver, PLD, etc. The interconnections are not shown. Block 110 represents a jumper block allowing master-slave selection or cable select operation. The ATA specification (a standard specification in the industry) allows drives to be configured as a master or a slave depending on jumper settings that are assigned on the block device. When a device is configured as a master device it will appear as the first device in the chain on the Initial Program Load (IPL) of the system. Subsequently, if a device is configured as a slave, it will appear as the second device in the chain. Cable select is an alternative way of assigning a device with master or slave identification by fixing the order of the device chain via the position it takes on the cable. When this is set, and if this feature is supported on the system in which the device is installed, the first device that is connected on the cable will appear as the master device and the next device will appear as the slave. Figure 5 is a top, cut away view of the docking module 14, for clarification of the eject mechanism and general layout. There is a. port 112 opening for insertion of a block device 18 (not shown in Fig. 5) . The outline of the module 14 as shown is configured to fit in a standard 5.25 inch computer bay. However, the outline can be configured differently, including a stand alone module as indicated in the block diagram of Fig. 1, wherein the interface 16 appears to be a cable assembly. In fact, the interconnection type can be whatever is needed to conform to the configuration of a particular computer 12. The components of Fig. 4 are also shown in Fig. 5, except for the PLD 86, the eject driver 98 and associated bus structure. This circuitry is all laid out on a circuit board and generally in the location 114. Fig. 4 shows the IDE connector 82 for connection to a cable leading to the computer 12, and the PCMIDE connector 84, which interconnects with the block device. The jumper block 110 and power connector 108 are symbolically indicated. In addition a floppy disk retention device 114 is indicated, which is a standard type of device and needs no further explanation. In general, the overall physical hardware of the docking module of Fig. 5 is fairly standard in form. An exception to this, of course, is the inclusion of the novel circuity as shown in Fig. 4. Another exception is a novel block device eject mechanism utilizing. a "muscle wire" 100 for rotating the CAM 102 to move an eject tray 116 in the direction 118 to eject an inserted block device 18. The term "muscle wire" is used to describe a shape memory alloy actuator wire made of "nickel - titanium. This small diameter wire contracts like a muscle when electrically driven. The length of the wire 100 from its connection at 120 to the CAM 102 to its connection at 122 to a terminal 124 is calculated so as to provide the required amount of contraction with a prescribed current to rotate the CAM 102 moving the end 126 in the direction 118 to push against plate 128, causing the tray 116 to move in the direction 118 and eject a block device 18 positioned thereon from the module 14. As illustrated, the terminal 124 provides electrical contact, carrying current from the eject driver 98, and also provides structural, connection to the module 14 housing 130. The connection 120 provides physical connection to the CAM 102 and an electrical connection through the CAM, constructed of electrically conductive material to complete the current return path to a conductive material such as a metal housing 130 member. The action provided by the "muscle wire" 100 is a gradual contraction, allowing a block device to be smoothly ejected from the housing 130. A more detailed description of the circuitry of Fig. 4 will now be given, which will be understood by those skilled in the art. The preferred manufacturer of the programmable logical device (PLD) is Lattice. Their part number ispLSI2032-80LT, is a 44 pin TQFP device. This PLD is designed to function with an Integrated Drive Electronics interface, and conforms to a standard set for manufacturers of hard disk drives known as ATA2. The PLD is a EEPROM device and the particular programming according to the present invention results in a PLD internal circuitry as shown in
-10-
ET RULE 26 Fig . 6 . An escape sequence logic section 132 receives input types I, J, K, L and M from the host computer 12, and responds by providing an enabling signal to enable access to two registers, noted as Dock Status Register 134 and a Dock Control Register 136, shown in block form in Fig..7. The programmed functionality of the PLD includes mapping both the Dock Control Register 136 and Dock Status Register 134 in task file address space, conforming to Advanced Technology (AT) standards, in task file address space when the escape sequence is active. The active state of the dock is achieved via writing a sequence of register reads and writes in the following order: Write to register 1F2 or 172 Read from register 1F1 or 171 Write to Register 1F2 or 172 Once this escape sequence is completed, the dock control and dock status registers will be presented on register 1F2 or 172 for write or read operations respectively. Registers 1F1 and 1F2 are registers within the block device. It also includes provision of an escape sequence for enabling the Dock Control Register 136 and Dock Status Register 134 and reflects and latches the information contained in the Dock Status Register 134. In addition, the programmed functionality includes provision of the Dock Control Register (a write register) for issuing control commands to the docking module 14. During the initial loading of the driver software into the computer 12, i.e. initial program load (IPL) the docking module 14 is normally uninitialized and does not, for example, permit a block device 18 such as a disk drive (HDD) to spin up when it is inserted into the docking module 14. This is true until the device software, normally loaded during the operating system boot process, provides the necessary initialization routine including the escape sequence and correct control commands to the PLD 86. This process will, in the case of a HDD, spin the drive up and enable the HDD's task file so that it can operate as a d sk drive accessible to the system. The PLD 86 performs this task by intercepting commands issued from the host computer to the task file register by mapping its address space into the AT task file address space. The docking module PLD 86 reads the contents of inputs 138, 140 and 142 (Fig. 7. and 6) arranged to connect to registers in, for example, an inserted HDD. The preferred register for this is what is known as a 1F2 or 172 register. If the HDD is inserted, the intercepted/red data will so indicate. All read and write commands to the HDD are done through the 1F2 register. This procedure (escape sequence) is determined by reading what is known as a 1F1 or 171 HDD register. At this point the computer 12 can access the HDD directly. The Dock Control Register 136 as shown in Fig. 7 provides the computer driver software the capability to control the following four functions listed by bit number: 1. Enable or disable the eject button 94 on the docking module 14 BDisable (bitO) 2. Send eject signal 96 to the eject driver 98 via line 142 SEject (bitl) 3. Reset the drive and allow spin up via line 140 DReset (bit2) 4. Enable or disable the registers (task file registers) in the HDD via line 138 Drenable (bit 3) The remaining bits are unused in this implementation. The Dock Status Register 134 provides that computer 12 with the following status bits as indicated in Fig. 7: Rsvd Not Used, set to 1 Button Latched to 1 value when the front panel button is pressed. Cleared when the Error Register (register 1F2 in HDD) is read while in Dock access mode or a HReset is received. The front panel button is a button accessible by the user, and when depressed activates button 94. SEject Reflects the state of the SEject bit in the last Dock Control register write. Cleared when the drive has been ejected or on HReset . The HRESET pin is located in Fig. 6, item 152, the function of this pin is to reflect the state of host reset to the dock so that a similar reset, drive reset (DRESET 154) can be issued to the drive. Setting and clearing the BDenable bit by writing to the Dock Control register is used to validate the presence of a dock. DREnable Shows state of Drive Enable bit. Did Identical to BDisable . This bit is used to identify the new dock versus the old dock. MC Media change (meaning block device status change as used in Fig. 3) is latched when INSERT is asserted. Cleared when the Error Register is read while in Dock access mode or a HReset is received. Drlns Reflects the state of the INSERT-signal . The bit has a value of I when INSERT - is asserted (low) . Referring now to Fig. 6, registers B and C are indicated within the dashed line and have connections D0-D6 interconnecting to connector 84 (Fig. 4) to the HDD or i.e. block device 18. The control and status registers are actually sharing a common address space 1F2 in the HDD/block device. Depending on the pending operation, either read or write depending on the inputs DIORn (K) or DIOWn (L) which input also to the block device (connections not shown) , the control register will be present in 1F2 when the register is read and the status register will be present in 1F2 when it is being written. Bits DO - D6 are thus a bi-directional bus that provides both read and write capability. The lines 138, 140 and 142 are lines to bits DRenable 144, DReset 146, and SEject 148 respectively. The BDisable bit 150 is connected to bit connection D4. D5 corresponds to the Bdisable in the dock status register B, this bit when set will cause the button to deactivate and thus not allow any physical ejection via the eject switch 94. Input 152 effects, a system reset activating the drive reset output 154. Output 156 leads to the HDD providing a device enable in response to input to the DEnable or DRenable bits. Outputs 158 and 160 are sent to the block device and function to select a particular file task register in the block device/HDD in response to inputs I, J and K. The LEDln output 166 is for activation of an LED indicating an active drive, and is responsive to the input on DASRn 164. The eject button 162 receives input from the eject button 94 (Fig. 4) and in response sends an output on D6 to the eject driver 98 (Fig. 4) to apply current to the "muscle wire" 100 to eject the HDD/block device 14. The Insert input 168 receives input from the block device/HDD for activating the DEnable bit to notify the host (computer 12) that the dr.ive is inserted. The. eject connection 170 is connected to the eject driver in response to an eject command from the eject bit SEject. Fig. 7 shows a block diagram of the Dock Status Register 134, Dock Control Register 136, escape sequence logic circuit 132 and numerous important inputs and outputs also shown in detail in Fig. 6. Fig. 8 is a detailed schematic of the complete circuitry of Fig. 4 including the PLD 86, the eject driver 98 (in dashed outline), the power connector 108, jumper block 110, and IDE connector 82 and PCMIDE connector 84. Also, various other miscellaneous circuitry details are included that are not clear or omitted from Fig. 4. Connector 172, noted in the eject driver 98 dashed outline, is for connection to the "muscle wire" . Connector 174 is for input of programming data to the PLD 86. An LED connector 176 is shown for connection to an LED, not shown but preferably on the docking module 14, for indicating when a block device is inserted. The other various circuit parts and interconnections will be understood by those skilled in the art upon reading the specification and are not described in further detail. Although the present invention has been described above in terms of a specific embodiment, it is anticipated that alterations and modifications thereof will no doubt become apparent to those skilled in the art. It is therefore intended that the following claims be interpreted as covering all such alterations and modifications as fall within the true spirit and scope of the invention. What is claimed is:
-15-
HEET RULE 26

Claims

CLAIMS 1. (Once amended) A system for hot swapping block devices in a computer system comprising; a) driver software for loading into a computer housing an Integrated Drive Electronic (IDE) interface; and b) a docking module connected to said computer by way of said IDE interface. a) one or more docking module means including i) means for receiving a block device, ii) means for ejecting a block device; and b) driver software for loading into a computer, including means for causing said computer to direct the receiving and ejecting of a block device to and from said docking module means, said computer and said docking module means interconnected through an Integrated Drive Electronics interface.
2. A system as recited in claim 1 wherein said driver software causes said system to conduct a routine for detecting the presence of a block device in a docking module means.
3. A system as recited in claim 2 wherein said driver software further includes means for causing said system to assign a block of memory for block device data.
4. A system as recited in claim 3 wherein said driver software further includes means for causing said computer to direct the transfer of block device data to said block of memory.
5. A system - as recited in claim 4 wherein said driver software further includes' means for dismounting, including means for causing said docking module means to eject the corresponding said block device.
6. A system as recited in claim 5 wherein said means for dismounting further includes means for de-assigning the corresponding block of memory corresponding to said ejected block device .
7. A system as recited in claim 2 wherein said routine is repeated at specified intervals of time.
8. A system as recited in claim 1 wherein said means for ejecting includes a) cam means; b) shape memory alloy actuator wire connected to said cam means ; and c) means for applying a current through said wire whereby upon application of said current, said wire contracts and causes said cam means to eject said block device.
9. A system as recited in claim 2 wherein said driver software causes said computer to direct said docking module means to check said block device for defects.
10. A system - as recited in claim 1 wherein said driver software causes said blocking module in cooperation with said computer to conduct a poll routine, repeated at intervals of time, including the steps of a) checking if a block device is inserted in a docking module; b) if no block device is inserted, check if a block device was inserted at the last poll, and if so initiate a dismount procedure to de-assign memory space set aside for the particular block module; c) if a block device is inserted, check for an eject command; d) if a command to eject is detected, check if the system is busy and if so begin another poll routine, and if not, eject the block device; and e) if no eject command is detected, check if block device status has changed and if so, assign memory space for data from the block device, and load data from the block device to the assigned memory space, and if status has not changed, proceed to the next poll.
11. A system as recited in claim 1 wherein said docking module means includes a programmable logic device means including means for providing block device data to said computer.
PCT/US1997/021788 1996-11-15 1997-11-14 Hot swapable drive/dock with software drivers for ide interface WO1998021640A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU53653/98A AU5365398A (en) 1996-11-15 1997-11-14 Hot swapable drive/dock with software drivers for ide interface

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US75245596A 1996-11-15 1996-11-15
US08/752,455 1996-11-15

Publications (1)

Publication Number Publication Date
WO1998021640A1 true WO1998021640A1 (en) 1998-05-22

Family

ID=25026405

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1997/021788 WO1998021640A1 (en) 1996-11-15 1997-11-14 Hot swapable drive/dock with software drivers for ide interface

Country Status (2)

Country Link
AU (1) AU5365398A (en)
WO (1) WO1998021640A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6745330B1 (en) 1999-06-22 2004-06-01 Hewlett-Packard Company, L.P. Computer system having peripheral device look
US9785196B1 (en) 2016-08-18 2017-10-10 Microsoft Technology Licensing, Llc Capture connector for actuated locking devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5483419A (en) * 1991-09-24 1996-01-09 Teac Corporation Hot-swappable multi-cartridge docking module
US5598539A (en) * 1994-03-25 1997-01-28 Advanced Micro Devices, Inc. Apparatus and method for achieving hot docking capabilities for a dockable computer system
US5628028A (en) * 1995-03-02 1997-05-06 Data Translation, Inc. Reprogrammable PCMCIA card and method and apparatus employing same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5483419A (en) * 1991-09-24 1996-01-09 Teac Corporation Hot-swappable multi-cartridge docking module
US5598539A (en) * 1994-03-25 1997-01-28 Advanced Micro Devices, Inc. Apparatus and method for achieving hot docking capabilities for a dockable computer system
US5628028A (en) * 1995-03-02 1997-05-06 Data Translation, Inc. Reprogrammable PCMCIA card and method and apparatus employing same

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6745330B1 (en) 1999-06-22 2004-06-01 Hewlett-Packard Company, L.P. Computer system having peripheral device look
US9785196B1 (en) 2016-08-18 2017-10-10 Microsoft Technology Licensing, Llc Capture connector for actuated locking devices
US10088874B2 (en) 2016-08-18 2018-10-02 Microsoft Technology Licensing, Llc Capture connector for actuated locking devices

Also Published As

Publication number Publication date
AU5365398A (en) 1998-06-03

Similar Documents

Publication Publication Date Title
US5297067A (en) Electronic hot connection of disk drive module to computer peripheral bus
US5805921A (en) Enhanced integrated device electronics (EIDE) interface for controlling communication between CPU and nine storage drives including tape drive, CD-ROM drive, and seven hard disk drives
US5812814A (en) Alternative flash EEPROM semiconductor memory system
US6145019A (en) Unconfigured device that automatically configures itself as the primary device if no other unconfigured device is present
US6772108B1 (en) Raid controller system and method with ATA emulation host interface
US6044423A (en) Identification of a swappable device in a portable computer
EP0044949B1 (en) Dynamic peripheral device address assignment method and unit
US5867736A (en) Methods for simplified integration of host based storage array control functions using read and write operations on a storage array control port
CA2385492C (en) Raid controller system and method with ata emulation host interface
US7007127B2 (en) Method and related apparatus for controlling transmission interface between an external device and a computer system
US6675260B2 (en) Virtual electronic data library supporting mixed drive types using virtual libraries within a single library
US6460093B1 (en) Automatic configuration of primary and secondary peripheral devices for a computer
EP0403207A2 (en) Diagnostic subsystem
US5923897A (en) System for adapter with status and command registers to provide status information to operating system and processor operative to write eject command to command register
CN201828901U (en) Card with memory function
SK226291A3 (en) Personal computer with identification of exchangeable memory medium
WO2001065383A1 (en) Variable-mode pc card and input/output control device of pc card
US20020023195A1 (en) Switching mechanism and disk array apparatus having the switching mechanism
US7814246B2 (en) Translation of data to/from storage devices based on a redundancy configuration and host interface type
EP1024434B1 (en) Automatic configuration of primary and secondary peripheral devices for a computer
US5023831A (en) Intelligent disk drive having configurable controller subsystem providing drive-status information via host-computer expansion bus
WO1998021640A1 (en) Hot swapable drive/dock with software drivers for ide interface
CN201465092U (en) Storage function card
US6516370B1 (en) Data storage system
EP0663088B1 (en) Method of communicating with an scsi bus device that does not have an assigned scsi address

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AM AT AU BB BG BR BY CA CH CN CZ DE DK EE ES FI GB GE HU IS JP KE KG KP KR KZ LK LR LT LU LV MD MG MN MW MX NO NZ PL PT RO RU SD SE SG SI SK TJ TM TT UA UG UZ VN

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: CA