US20040010635A1 - An architecture and related methods facilitating secure port bypass circuit settings - Google Patents
An architecture and related methods facilitating secure port bypass circuit settings Download PDFInfo
- Publication number
- US20040010635A1 US20040010635A1 US10/619,162 US61916203A US2004010635A1 US 20040010635 A1 US20040010635 A1 US 20040010635A1 US 61916203 A US61916203 A US 61916203A US 2004010635 A1 US2004010635 A1 US 2004010635A1
- Authority
- US
- United States
- Prior art keywords
- command
- pbc
- gpio
- input
- received
- Prior art date
- Legal status (The legal status 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 status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000008859 change Effects 0.000 claims description 14
- 238000004891 communication Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000002592 echocardiography Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
Definitions
- This invention generally relates to data networks and, more particularly, to an architecture and related method(s) facilitating secure port bypass circuit (PBC) settings within a data network.
- PBC secure port bypass circuit
- Port bypass circuits are well known as a reliable means of switching in high-speed data networks. Simplistically speaking, a PBC is a multiplexer that is used within data networks to selectively couple network elements. Port bypass circuits possess several performance attributes such as low-latency switching and minimal jitter accumulation that make them particularly attractive for use in high-speed switching applications. PBCs are often employed to selectively couple network elements to a high-speed data network, drives within a redundant array of independent disks (RAID) system and/or their progeny (e.g., just a bunch of disks (JBOD), storage area networks (SANs)), and the like.
- RAID redundant array of independent disks
- JBOD just a bunch of disks
- SANs storage area networks
- FIG. 1 illustrates a block diagram of an example PBC implementation within a distributed storage system 100 .
- the example implementation is a RAID system 100 , wherein the PBC's are utilized to selectively couple storage devices to the storage system.
- the storage system 100 includes a bus controller 102 coupled to controller 104 (e.g., a backplane controller) via a control bus 106 .
- controller 104 e.g., a backplane controller
- the backplane controller 104 is coupled to each of the Port Bypass Circuits 110 A . . . N via at least one enable line 108 A . . . N.
- N are utilized to selectively enable/disable an input/output device (e.g., storage device) 112 A . . . N to the RAID system 100 .
- an input/output device e.g., storage device
- any of a number of alternate networking technologies such as, for example, Ethernet, Fast Ethernet, Gigabit Ethernet, Fibre Channel, etc., may well be used to transfer information within network 100 .
- the bus controller 102 selectively issues instructions to the backplane controller 104 to engage/disengage one or more drives 112 A . . . N (e.g., enabling/disabling of a control line on the PBC) from the system 100 via the control bus 106 .
- backplane controller Based on the control commands received from the bus controller 102 , backplane controller selectively enables one ore more PBCs 110 A . . . N by asserting an associated enable line 108 A . . . N.
- control bus 106 is an addressable serial bus such as, for example, an I 2 CTM serial bus (introduced by Philips, N.A.), and the bus controller 102 is a bus bridge with I 2 CTM control facilities.
- I 2 CTM serial bus Introduced by Philips, N.A.
- loopback paths are typically implemented in the communication network using the PBC to enable self-testing and troubleshooting of the storage system 100 .
- PBC controller e.g., the backplane controller of the example RAID system 100
- This lack of programmatic intelligence in the backplane controller 104 typically prohibits the use of any “protocol layer” in the control path 106 to ensure data integrity in setting the PBC states. Accordingly, invalid control data caused by noise, a fault in the communication path, I/O errors between controllers 102 and 104 , and the like can cause erroneous setting of one or more PBCs 110 A . . . N.
- the resultant undesirable PBC setting is unpredictable and not readily detectable in prior art implementations.
- erroneous setting of a PBC state will typically result in enabling undesired data to stray onto the network communication paths that, at best, causes performance degredation and, at worst, breaks the data path which may require re-arbitration of device(s) or even a re-initialization of the network (e.g., RAID system) to reestablish the communication path.
- a re-initialization of the network e.g., RAID system
- a method for securing port bypass circuit settings comprising issuing one or more command(s) to one or more inputs of a general purpose input/output (GPIO) system, wherein the command(s) cause a first output of the GPIO system associated with a first input of the multiple inputs to issue a control signal to a latch associated with a port bypass circuit (PBC) addressed in the received command(s), and a second output of the GPIO system associated with a second of the multiple inputs of the GPIO system to issue a clock signal to a latch associated with a PBC addressed in the received command(s).
- GPIO general purpose input/output
- the control signal and the clock signal are sent to a single latching device, which latches the control signal to the addressed PBC changing the state of the PBC. If the command(s) are not consistent with changing a common PBC, the control and clock signal(s) are not received by a common latch, and none of the PBC states change. According to one exemplary implementation, the signals must also be sent in the order denoted above, i.e., control signal then clock signal in order to effectively change the state of the targeted PBC. In this regard, the claimed invention presents an innovative system and method for securing port bypass circuit settings.
- a method comprising issuing one or more control command(s) to a controller which, when interpreted, causes the controller to issue control signals to a port bypass circuit to control an operational state of the port bypass circuit. Upon verifying that the controller accurately received the one or more control commands, the control signals are passed to the port bypass circuit.
- FIG. 1 shows a block diagram of a prior art data network incorporating port bypass circuit(s) (PBC) to selectively couple network elements;
- PBC port bypass circuit(s)
- FIG. 2 is a block diagram of a data network network incorporating the teachings of the present invention, according to one implementation of the present invention
- FIG. 3 is a more detailed block diagram of the innovative data network depicted in FIG. 2;
- FIG. 4 is a flow chart of an example method of securing Port Bypass Circuit settings, in accordance with one embodiment of the present invention.
- FIG. 5 is a flow chart of an example method for securing Port Bypass Circuit settings, according to an alternate embodiment of the present invention.
- FIG. 6 is a communication flow diagram illustrating an example communication exchange between select elements of storage system facilitating secure port bypass circuit settings.
- FIG. 7 is a timing diagram of an example communication exchange between select elements of a storage system to facilitate secure port bypass circuit settings.
- FIG. 2 illustrates a block diagram of an example system 200 facilitating secure port bypass circuit settings, according to one example implementation of the present invention.
- system 200 is similar to that of network 100 , i.e., comprising controller 104 , control bus 106 , enabling lines 108 A . . . N, PBCs 110 A . . . N, and the like each coupled as depicted.
- the system 200 includes general purpose input/output (GPIO) system 203 coupled to one or more enabler device(s) 204 .
- GPIO system 203 receives a command to change the state of an addressed PBC from controller 102 via at least two input ports.
- GPIO system 203 interprets the command received from the first input and issues a control signal to a data input of a latch associated with the PBC addressed in the command received at the first input. In addition, GPIO system 203 interprets the command received via the second input and generates a clock signal to a clock input of a latch associated with the PBC addressed in the command received from the second input. If the command is received from by a common latch (i.e., the command received via the first and second inputs address a common PBC), the control signal is latched through enabler 204 to the addressed PBC. In this way, system 200 facilitates the secure modification of PBC state.
- system 200 includes controller 202 .
- controller 202 is implemented using controller 104 , i.e., a standard bus bridge, bus controller, etc.
- controller 202 is an application specific integrated circuit (ASIC) which controls PBC state along with a number of other parameters of a host storage system.
- ASIC application specific integrated circuit
- the control commands issued by bus controller 202 instruct GPIO system 203 to place an addressed PBC 110 A . . . N in a particular state (e.g., to facilitate communication between a drive and an I/O device, to bypass a drive, etc.).
- controller 202 issues one or more commands to GPIO system 203 to control assertion of control and clock signal(s) to an enabler device 204 to effectively control the secure the state of PBC(s) 110 .
- controller 202 implements a programmatic command verification feature which automatically verifies the integrity of the issued control commands, before asserting a clock signal to the enabler device(s) 204 and, thus, securing the state of the PBCs 110 .
- controller 202 utilizes the I 2 C serial communication protocol in communications with GPIO system 203 .
- GPIO system 203 is comprised of one or more general purpose input/output devices.
- An example of a suitable GPIO device is the Vitesse VSCO50 commonly available by Vitesse Semiconducter of Camarillo, Calif.
- GPIO system 203 receives one or more commands via one or more inputs (or, one input at each of two separate GPIO(s) of system 203 ) which are interpreted to generate control signal(s) and clock signal(s) to enabling device 204 associated with a common PBC 110 .
- the command received to generate each of the clock and control signal(s) must address common latch circuitry within enabling device 204 associated with a single PBC 110 in order for the state of the PBC 110 to be changed.
- the order of signals is important, i.e., the control signal must be received by enabling device 204 prior to the clock signal in order to effectively change the state of the PBC 110 .
- Enabler device(s) 204 are intended to represent any of a number of circuits/devices to selectively assert control signal(s) to addressed PBC(s).
- enabler device(s) 204 is comprised of a number latch circuits such as flip-flops, one each associated with a PBC 110 .
- assertion of a control signal and a clock signal is required to latch the control signal to the associated PBC.
- the control and clock signals are generated by separate GPIO logic (if not devices) of GPIO system 203 and must both be received by the same flip-flop associated with the addressed PBC.
- the flip-flop logic is realized in an appropriately programmed programmable logic device (PLD).
- PBC enabler 204 is a N:M multiplexer, selectively coupling N enable lines 108 A . . . N with M enable lines 208 A . . . N.
- Use of the multiplexer has the advantage of reducing the number of controller enable lines 108 A. N required, albeit at the expense of an increased command complexity in the I 2 CTM protocol used between the bus controller 202 and the controller 104 (i.e., to particularly identify the enable line 108 A . . . N to use to control a particular PBC).
- controller 202 verifies the integrity of the control command(s) received by GPIO system 203 .
- controller 202 utilizes any of a number of error checking protocols such as, for example, cyclical redundancy check (CRC) error detection, utilizing multiple data streams and/or data encoding of the issued control commands to authenticate the integrity of command(s) received at GPIO system 203 .
- CRC cyclical redundancy check
- controller 202 calculates a CRC value for a command issued to and echoed by GPIO system 203 to verify that the issued command was accurately received.
- controller 202 via GPIO system 203 , asserts the clock pulse to an appropriate flip-flop of enabler device(s) 204 to change the state of the addressed PBC 110 . If the received command varies by even 1 bit from that issued by the bus controller 202 , the CRC value will not match that of the original command, and the clock signal is not issued. In this way, PBC state(s) are secured by introducing an intelligent protocol layer in the communication channel of system 200 facilitating the one or more error checking features.
- FIG. 3 illustrates a block diagram providing greater detail of system 200 , in accordance with one example implementation of the present invention.
- FIG. 3 is depicted to denote that GPIO system 203 may well be comprised of a number of individual GPIO devices 302 , 304 .
- FIG. 3 illustrates enabler device(s) 204 comprised of a plurality of latching logic 306 , such as the flip-flops described above.
- FIGS. 2 and 3 are intended to be illustrative of the present invention limited only by the scope of the claims, appended hereto.
- FIGS. 4 - 7 wherein example methods of operation, communication flow diagrams and timing diagrams are presented in accordance with the teachings of the present invention.
- FIG. 4 illustrates a flow chart of an example method for the secure control of port bypass circuit settings, in accordance with one example embodiment of the present invention.
- the method begins with block 402 wherein controller 202 issues one or more control command(s) to GPIO system 203 to change the state of an addressed PBC 110 .
- the command(s) are received via at least two inputs of GPIO system 203 .
- a single control command is issued by controller 202 to two separate inputs of GPIO system 203 (i.e., effectively received as two separate commands by different sections of GPIO system 203 ).
- controller 202 issues two separate commands to two separate inputs of GPIO system 203 .
- the command(s) received by GPIO system 203 via separate input paths are interpreted independently.
- a first of the separate input paths is coupled to a data line of enabler device 204 via GPIO system 203 .
- a second of the input paths is coupled to a clock line of enabler device 204 via GPIO system 203 .
- the first input path is located on one GPIO device 302
- the second input path is located on another GPIO device 304 .
- the one or more GPIO device(s) of GPIO system asserts control and clock signals to enabler device(s) 204 associated with an addressed PBC 110 , block 406 . That is, GPIO system 203 identifies the PBC addressed in the received command(s) and issues a control signal (or clock signal) to an enabler device 306 associated with the addressed PBC.
- the control and clock signal(s) asserted by GPIO system 203 are received by a single enabler device 306 , block 408 .
- the signals must be received by enabling device 204 in the order prescribed above, i.e., control signal followed by clock signal.
- the control signal is latched to the addressed PBC to securely change the state of the PBC 110 , block 410 .
- the control and clock signal(s) asserted by GPIO system 203 are not received by a common enabler device 306 . Since the control and clock signal(s) are not received by a common enabler device 306 , the state of the PBCs are not changed, block 412 . In this way, system 200 secures the state of PBCs 110 .
- FIG. 5 illustrates a flow chart of an example method of securing port bypass circuit settings, according to an alternate implementation of the present invention. For ease of illustration, and not limitation, the method of FIG. 5 will be presented with continued reference to the system architecture depicted in FIG. 2.
- bus controller 202 issues one or more control command(s) to GPIO system 203 to affect the state of one or more PBC(s) 10 A . . . N. More specifically, according to one implementation, bus controller 202 issues control command(s) to GPIO system 203 via control bus 106 in accordance with the I 2 C communication protocol and utilizing one or more error checking protocols. According to one implementation, bus controller 202 has calculated a CRC value for the one or more control commands issued to GPIO system 203 . Upon receipt of control command(s), GPIO 203 generates a control signal for the addressed PBC 110 and issues the control signal to enabler device(s) 204 .
- controller 202 verifies that GPIO system 203 has accurately received the control commands issued in block 502 .
- GPIO system 203 receives the command(s) and generates a response to the bus controller 202 in accordance with the one or more error checking protocols employed. More specifically, in accordance with the illustrated example embodiment, GPIO system 203 receives the command(s), generates a CRC value for the received command(s) and echoes the CRC value to bus controller 202 over the control bus 106 . In an alternate embodiment, GPIO system 203 echoes the control command(s) itself, and the bus controller 202 calculates a second CRC value to compare with the initial CRC value.
- controller 202 verifies that the command(s) received by GPIO system 203 are accurate, according to the one or more error checking protocols employed. As introduced above, in accordance with the example embodiment, controller 202 compares the CRC value(s) associated with the issued and echoed command(s). If, in block 506 , controller 202 verifies that GPIO system 203 has accurately received the commands, controller 202 notifies enabler device(s) 204 to pass the control signal generated by GPIO system 203 , block 508 . According to one implementation, controller 202 issues a control signal to GPIO system 208 to issue a clock signal to enabler device(s) 204 , thereby clocking the control signal to the addressed PBC. In block 510 , enabler device 204 latches the control signal received from GPIO system 203 to the addressed PBC 110 .
- controller 202 If, in block 506 , controller 202 is unable to verify that GPIO system 203 has accurately received the issued command(s), the process continues with block 502 as controller 202 re-issues the command(s). According to one implementation, the process of blocks 502 - 506 repeat until controller 202 verifies that the GPIO system 203 has accurately received the command(s) issued, thereby securing the integrity of the PBC settings and ensuring that extraneous data is not leaked to the network 200 .
- FIG. 6 graphically illustrates an example communication flow diagram for illustrating an example communication flow sequence associated with FIG. 5 in accordance with the teachings of the present invention.
- controller 202 issues control command(s) ( 602 ) and attempts to verify that they are accurately received by GPIO system 203 ( 606 ) in an iterative fashion until an issued control command(s) ( 608 ) is verified to have been accurately received ( 612 ).
- controller 202 issues a signal ( 614 ) to enabler device(s) 204 (via GPIO system 203 ) to latch control signal ( 610 ) received from GPIO system 203 to PBC(s) 110 A . . . N ( 616 ).
- a signal 614
- enabler device(s) 204 via GPIO system 203
- FIG. 7 graphically illustrates an example timing diagram associated with the method of FIG. 5, according to one implementation of the present invention.
- a number of write/read iterations 702 - 706 are performed until bus controller 202 verifies that GPIO system 203 has accurately received the issued command ( 708 ).
- controller 202 instructs ( 710 ) enabler device(s) 204 to transfer the information from enabling lines 108 A . . . N to PBC enabling lines 208 A . . . N, reference 712 .
- the PBC enable bits change state in accordance with the issued control command.
Abstract
A method for securing port bypass circuit settings is presented comprising issuing one or more command(s) to one or more inputs of a general purpose input/output (GPIO) system, wherein the command(s) cause a first output of the GPIO system associated with a first input of the multiple inputs to issue a control signal to a latch associated with a port bypass circuit (PBC) addressed in the received command(s), and a second output of the GPIO system associated with a second of the multiple inputs of the GPIO system to issue a clock signal to a latch associated a PBC addressed in the received command(s). If command(s) received at the first and second inputs are consistent with changing the state of a common PBC, the control signal and the clock signal are sent to a single latching device, which latches the control signal to the addressed PBC changing the state of the PBC. If the command(s) are not consistent, the control and clock signal(s) are not received by a common latch, and the PBC states remain unchanged.
Description
- This application is a continuation of prior application Ser. No. 09/638,273, filed Aug. 14, 2000, entitled “An Architecture and Related Methods Facilitating Secure Port Bypass Circuit Settings”, which is hereby incorporated by reference.
- This invention generally relates to data networks and, more particularly, to an architecture and related method(s) facilitating secure port bypass circuit (PBC) settings within a data network.
- Port bypass circuits (PBC) are well known as a reliable means of switching in high-speed data networks. Simplistically speaking, a PBC is a multiplexer that is used within data networks to selectively couple network elements. Port bypass circuits possess several performance attributes such as low-latency switching and minimal jitter accumulation that make them particularly attractive for use in high-speed switching applications. PBCs are often employed to selectively couple network elements to a high-speed data network, drives within a redundant array of independent disks (RAID) system and/or their progeny (e.g., just a bunch of disks (JBOD), storage area networks (SANs)), and the like. An example prior art implementation of a PBC within a distributed storage system is presented with reference to FIG. 1.
- FIG. 1 illustrates a block diagram of an example PBC implementation within a
distributed storage system 100. For purposes of illustration, the example implementation is aRAID system 100, wherein the PBC's are utilized to selectively couple storage devices to the storage system. As shown, thestorage system 100 includes abus controller 102 coupled to controller 104 (e.g., a backplane controller) via acontrol bus 106. Thebackplane controller 104 is coupled to each of the Port BypassCircuits 110A . . . N via at least one enableline 108A . . . N. As introduced above, the PBC's 10A . . . N are utilized to selectively enable/disable an input/output device (e.g., storage device) 112A . . . N to theRAID system 100. It is to be appreciated that any of a number of alternate networking technologies such as, for example, Ethernet, Fast Ethernet, Gigabit Ethernet, Fibre Channel, etc., may well be used to transfer information withinnetwork 100. - In accordance with the illustrated implementation, the
bus controller 102 selectively issues instructions to thebackplane controller 104 to engage/disengage one ormore drives 112A . . . N (e.g., enabling/disabling of a control line on the PBC) from thesystem 100 via thecontrol bus 106. Based on the control commands received from thebus controller 102, backplane controller selectively enables one ore more PBCs 110A . . . N by asserting an associated enableline 108A . . . N. In accordance with a typical implementation, thecontrol bus 106 is an addressable serial bus such as, for example, an I2C™ serial bus (introduced by Philips, N.A.), and thebus controller 102 is a bus bridge with I2C™ control facilities. In addition, loopback paths are typically implemented in the communication network using the PBC to enable self-testing and troubleshooting of thestorage system 100. - One shortcoming of such prior art systems, however, is a lack of programmatic capability at the PBC controller (e.g., the backplane controller of the example RAID system100). This lack of programmatic intelligence in the
backplane controller 104 typically prohibits the use of any “protocol layer” in thecontrol path 106 to ensure data integrity in setting the PBC states. Accordingly, invalid control data caused by noise, a fault in the communication path, I/O errors betweencontrollers more PBCs 110A . . . N. The resultant undesirable PBC setting is unpredictable and not readily detectable in prior art implementations. Indeed, erroneous setting of a PBC state will typically result in enabling undesired data to stray onto the network communication paths that, at best, causes performance degredation and, at worst, breaks the data path which may require re-arbitration of device(s) or even a re-initialization of the network (e.g., RAID system) to reestablish the communication path. - In accordance with the teachings of the present invention, an architecture and related methods facilitating secure port bypass circuit settings is presented incorporating the teachings of the present invention. According to a first implementation, a method for securing port bypass circuit settings is presented comprising issuing one or more command(s) to one or more inputs of a general purpose input/output (GPIO) system, wherein the command(s) cause a first output of the GPIO system associated with a first input of the multiple inputs to issue a control signal to a latch associated with a port bypass circuit (PBC) addressed in the received command(s), and a second output of the GPIO system associated with a second of the multiple inputs of the GPIO system to issue a clock signal to a latch associated with a PBC addressed in the received command(s). If command(s) received at the first and second inputs are consistent with changing a common PBC, the control signal and the clock signal are sent to a single latching device, which latches the control signal to the addressed PBC changing the state of the PBC. If the command(s) are not consistent with changing a common PBC, the control and clock signal(s) are not received by a common latch, and none of the PBC states change. According to one exemplary implementation, the signals must also be sent in the order denoted above, i.e., control signal then clock signal in order to effectively change the state of the targeted PBC. In this regard, the claimed invention presents an innovative system and method for securing port bypass circuit settings.
- According to one implementation, a method is presented comprising issuing one or more control command(s) to a controller which, when interpreted, causes the controller to issue control signals to a port bypass circuit to control an operational state of the port bypass circuit. Upon verifying that the controller accurately received the one or more control commands, the control signals are passed to the port bypass circuit.
- FIG. 1 shows a block diagram of a prior art data network incorporating port bypass circuit(s) (PBC) to selectively couple network elements;
- FIG. 2 is a block diagram of a data network network incorporating the teachings of the present invention, according to one implementation of the present invention;
- FIG. 3 is a more detailed block diagram of the innovative data network depicted in FIG. 2;
- FIG. 4 is a flow chart of an example method of securing Port Bypass Circuit settings, in accordance with one embodiment of the present invention;
- FIG. 5 is a flow chart of an example method for securing Port Bypass Circuit settings, according to an alternate embodiment of the present invention;
- FIG. 6 is a communication flow diagram illustrating an example communication exchange between select elements of storage system facilitating secure port bypass circuit settings; and
- FIG. 7 is a timing diagram of an example communication exchange between select elements of a storage system to facilitate secure port bypass circuit settings.
- In describing the present invention, example network architectures and associated methods will be described with reference to the above drawings. It is noted, however, that modification to the architecture and methods described herein may well be made without deviating from the present invention. Indeed, such alternate embodiments are anticipated within the scope and spirit of the present invention.
- Example PBC Control Architecture
- FIG. 2 illustrates a block diagram of an
example system 200 facilitating secure port bypass circuit settings, according to one example implementation of the present invention. In accordance with the illustrated example embodiment of FIG. 2,system 200 is similar to that ofnetwork 100, i.e., comprisingcontroller 104,control bus 106, enablinglines 108A . . . N, PBCs 110A . . . N, and the like each coupled as depicted. In addition, thesystem 200 includes general purpose input/output (GPIO)system 203 coupled to one or more enabler device(s) 204. As will be discussed in greater detail below,GPIO system 203 receives a command to change the state of an addressed PBC fromcontroller 102 via at least two input ports.GPIO system 203 interprets the command received from the first input and issues a control signal to a data input of a latch associated with the PBC addressed in the command received at the first input. In addition,GPIO system 203 interprets the command received via the second input and generates a clock signal to a clock input of a latch associated with the PBC addressed in the command received from the second input. If the command is received from by a common latch (i.e., the command received via the first and second inputs address a common PBC), the control signal is latched throughenabler 204 to the addressed PBC. In this way,system 200 facilitates the secure modification of PBC state. - As shown,
system 200 includescontroller 202. According to one implementation,controller 202 is implemented usingcontroller 104, i.e., a standard bus bridge, bus controller, etc. In accordance with another embodiment,controller 202 is an application specific integrated circuit (ASIC) which controls PBC state along with a number of other parameters of a host storage system. According to one implementation, the control commands issued bybus controller 202 instructGPIO system 203 to place an addressedPBC 110A . . . N in a particular state (e.g., to facilitate communication between a drive and an I/O device, to bypass a drive, etc.). As introduced above,controller 202 issues one or more commands toGPIO system 203 to control assertion of control and clock signal(s) to anenabler device 204 to effectively control the secure the state of PBC(s) 110. In accordance with one embodiment, to be discussed more fully below,controller 202 implements a programmatic command verification feature which automatically verifies the integrity of the issued control commands, before asserting a clock signal to the enabler device(s) 204 and, thus, securing the state of thePBCs 110. According to the example implementation,controller 202 utilizes the I2C serial communication protocol in communications withGPIO system 203. - As used herein,
GPIO system 203 is comprised of one or more general purpose input/output devices. An example of a suitable GPIO device is the Vitesse VSCO50 commonly available by Vitesse Semiconducter of Camarillo, Calif. As introduced above,GPIO system 203 receives one or more commands via one or more inputs (or, one input at each of two separate GPIO(s) of system 203) which are interpreted to generate control signal(s) and clock signal(s) to enablingdevice 204 associated with acommon PBC 110. According to one aspect of the present invention, the command received to generate each of the clock and control signal(s) must address common latch circuitry within enablingdevice 204 associated with asingle PBC 110 in order for the state of thePBC 110 to be changed. Indeed, according to one implementation, the order of signals is important, i.e., the control signal must be received by enablingdevice 204 prior to the clock signal in order to effectively change the state of thePBC 110. - Enabler device(s)204 are intended to represent any of a number of circuits/devices to selectively assert control signal(s) to addressed PBC(s). According to one implementation, enabler device(s) 204 is comprised of a number latch circuits such as flip-flops, one each associated with a
PBC 110. In accordance with this implementation, assertion of a control signal and a clock signal is required to latch the control signal to the associated PBC. To protect against the inadvertent assertion of a control signal, the control and clock signals are generated by separate GPIO logic (if not devices) ofGPIO system 203 and must both be received by the same flip-flop associated with the addressed PBC. According to one implementation, the flip-flop logic is realized in an appropriately programmed programmable logic device (PLD). - According to a second implementation,
PBC enabler 204 is a N:M multiplexer, selectively coupling N enablelines 108A . . . N with M enablelines 208A . . . N. Use of the multiplexer has the advantage of reducing the number of controller enablelines 108A. N required, albeit at the expense of an increased command complexity in the I2C™ protocol used between thebus controller 202 and the controller 104 (i.e., to particularly identify the enableline 108A . . . N to use to control a particular PBC). - According to an alternate embodiment of the present invention,
controller 202 verifies the integrity of the control command(s) received byGPIO system 203. In accordance with this alternate embodiment,controller 202 utilizes any of a number of error checking protocols such as, for example, cyclical redundancy check (CRC) error detection, utilizing multiple data streams and/or data encoding of the issued control commands to authenticate the integrity of command(s) received atGPIO system 203. According to one implementation, for example,controller 202 calculates a CRC value for a command issued to and echoed byGPIO system 203 to verify that the issued command was accurately received. Upon such verification,controller 202, viaGPIO system 203, asserts the clock pulse to an appropriate flip-flop of enabler device(s) 204 to change the state of the addressedPBC 110. If the received command varies by even 1 bit from that issued by thebus controller 202, the CRC value will not match that of the original command, and the clock signal is not issued. In this way, PBC state(s) are secured by introducing an intelligent protocol layer in the communication channel ofsystem 200 facilitating the one or more error checking features. - FIG. 3 illustrates a block diagram providing greater detail of
system 200, in accordance with one example implementation of the present invention. In particular, FIG. 3 is depicted to denote thatGPIO system 203 may well be comprised of a number ofindividual GPIO devices logic 306, such as the flip-flops described above. - It is to be appreciated, although illustrated in accordance with a hardware implementation, one or more of the operational elements of FIGS. 2 and 3 may well be implemented by a controller or other execution device executing one or more executable instructions. In this regard, FIGS. 2 and 3 are intended to be illustrative of the present invention limited only by the scope of the claims, appended hereto.
- Example Operation and Implementation
- Having introduced an example architectural environment with reference to FIGS. 2 and 3, above, reference is now directed to FIGS.4-7 wherein example methods of operation, communication flow diagrams and timing diagrams are presented in accordance with the teachings of the present invention.
- FIG. 4 illustrates a flow chart of an example method for the secure control of port bypass circuit settings, in accordance with one example embodiment of the present invention. In accordance with the illustrated example embodiment of FIG. 4, the method begins with
block 402 whereincontroller 202 issues one or more control command(s) toGPIO system 203 to change the state of an addressedPBC 110. Inblock 404, the command(s) are received via at least two inputs ofGPIO system 203. According to one implementation, a single control command is issued bycontroller 202 to two separate inputs of GPIO system 203 (i.e., effectively received as two separate commands by different sections of GPIO system 203). In another implementation,controller 202 issues two separate commands to two separate inputs ofGPIO system 203. - The command(s) received by
GPIO system 203 via separate input paths are interpreted independently. A first of the separate input paths is coupled to a data line ofenabler device 204 viaGPIO system 203. A second of the input paths is coupled to a clock line ofenabler device 204 viaGPIO system 203. In accordance with one implementation, depicted in FIG. 3, the first input path is located on oneGPIO device 302, while the second input path is located on anotherGPIO device 304. - In response to the received command(s), the one or more GPIO device(s) of GPIO system asserts control and clock signals to enabler device(s)204 associated with an addressed
PBC 110, block 406. That is,GPIO system 203 identifies the PBC addressed in the received command(s) and issues a control signal (or clock signal) to anenabler device 306 associated with the addressed PBC. - If the received command(s) are consistent with changing a common (single PBC, the control and clock signal(s) asserted by
GPIO system 203 are received by asingle enabler device 306, block 408. According to one implementation, to effect the state of the PBC, the signals must be received by enablingdevice 204 in the order prescribed above, i.e., control signal followed by clock signal. Upon receiving the control and clock signal(s) at asingle enabler device 306, the control signal is latched to the addressed PBC to securely change the state of thePBC 110, block 410. - If, however, the received command(s) differ in that they are not consistent with changing the state of a common PBC, the control and clock signal(s) asserted by
GPIO system 203 are not received by acommon enabler device 306. Since the control and clock signal(s) are not received by acommon enabler device 306, the state of the PBCs are not changed, block 412. In this way,system 200 secures the state ofPBCs 110. - FIG. 5 illustrates a flow chart of an example method of securing port bypass circuit settings, according to an alternate implementation of the present invention. For ease of illustration, and not limitation, the method of FIG. 5 will be presented with continued reference to the system architecture depicted in FIG. 2.
- As shown, the method begins with
block 502 whereinbus controller 202 issues one or more control command(s) toGPIO system 203 to affect the state of one or more PBC(s) 10A . . . N. More specifically, according to one implementation,bus controller 202 issues control command(s) toGPIO system 203 viacontrol bus 106 in accordance with the I2C communication protocol and utilizing one or more error checking protocols. According to one implementation,bus controller 202 has calculated a CRC value for the one or more control commands issued toGPIO system 203. Upon receipt of control command(s),GPIO 203 generates a control signal for the addressedPBC 110 and issues the control signal to enabler device(s) 204. - In
block 504,controller 202 verifies thatGPIO system 203 has accurately received the control commands issued inblock 502. According to one implementation,GPIO system 203 receives the command(s) and generates a response to thebus controller 202 in accordance with the one or more error checking protocols employed. More specifically, in accordance with the illustrated example embodiment,GPIO system 203 receives the command(s), generates a CRC value for the received command(s) and echoes the CRC value tobus controller 202 over thecontrol bus 106. In an alternate embodiment,GPIO system 203 echoes the control command(s) itself, and thebus controller 202 calculates a second CRC value to compare with the initial CRC value. - In
block 506,controller 202 verifies that the command(s) received byGPIO system 203 are accurate, according to the one or more error checking protocols employed. As introduced above, in accordance with the example embodiment,controller 202 compares the CRC value(s) associated with the issued and echoed command(s). If, inblock 506,controller 202 verifies thatGPIO system 203 has accurately received the commands,controller 202 notifies enabler device(s) 204 to pass the control signal generated byGPIO system 203, block 508. According to one implementation,controller 202 issues a control signal to GPIO system 208 to issue a clock signal to enabler device(s) 204, thereby clocking the control signal to the addressed PBC. Inblock 510,enabler device 204 latches the control signal received fromGPIO system 203 to the addressedPBC 110. - If, in
block 506,controller 202 is unable to verify thatGPIO system 203 has accurately received the issued command(s), the process continues withblock 502 ascontroller 202 re-issues the command(s). According to one implementation, the process of blocks 502-506 repeat untilcontroller 202 verifies that theGPIO system 203 has accurately received the command(s) issued, thereby securing the integrity of the PBC settings and ensuring that extraneous data is not leaked to thenetwork 200. - It is to be appreciated, based on the foregoing, that use of the error checking protocol(s) in association with the
PBC enabler 204 serve to improve the certainty that thePBCs 110A . . . N are being properly set by thecontroller 202. In this regard, thesystem 200 andmethods - FIG. 6 graphically illustrates an example communication flow diagram for illustrating an example communication flow sequence associated with FIG. 5 in accordance with the teachings of the present invention. In accordance with FIG. 6,
controller 202 issues control command(s) (602) and attempts to verify that they are accurately received by GPIO system 203 (606) in an iterative fashion until an issued control command(s) (608) is verified to have been accurately received (612). At which point,controller 202 issues a signal (614) to enabler device(s) 204 (via GPIO system 203) to latch control signal (610) received fromGPIO system 203 to PBC(s) 110A . . . N (616). In this manner, only those commands which are verified accurate are effectively implemented at thePBCs 110A . . . N. - FIG. 7 graphically illustrates an example timing diagram associated with the method of FIG. 5, according to one implementation of the present invention. As shown, a number of write/read iterations702-706 are performed until
bus controller 202 verifies thatGPIO system 203 has accurately received the issued command (708). Oncecontroller 202 has verified the received command,controller 202 instructs (710) enabler device(s) 204 to transfer the information from enablinglines 108A . . . N toPBC enabling lines 208A . . . N,reference 712. Atreference 712, the PBC enable bits change state in accordance with the issued control command. - Although the invention has been described in language specific to structural features and/or methodological acts, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or steps described. Rather, the specific features and steps are disclosed as example forms of implementing the claimed invention. Moreover, it is to be appreciated that one or more structural and/or functional elements described above may well be combined to effect the claimed invention. In one alternate implementation, for example, the enabler device(s)204 (or enabler function) is incorporated into an innovative controller, wherein received commands are not acted upon until authenticated by an issuing element. In this regard, modification to the above described embodiments may well be made without deviating from the spirit and scope of the present invention.
Claims (14)
1. A method comprising:
issuing one or more command(s) to one or more inputs of a general purpose input/output (GPIO) system, wherein the command(s) cause a first output of the GPIO system associated with a first input of the inputs to issue a control signal to a latch associated with a port bypass circuit (PBC), and a second output of the GPIO system associated with a second of the inputs of the GPIO system to issue a clock signal to a latch associated with a PBC addressed by the received command(s); and
setting the state of the PBC with the received control signal if the control signal and the clock signal are consistent to change the state of the PBC.
2. A method according to claim 1 , wherein the control signal changes a state of the PBC.
3. A method according to claim 1 , wherein the command is sent to a first GPIO device within the GPIO system to generate the first output, and to a second GPIO device within the GPIO system to issue the second output.
4. A method according to claim 1 , wherein the state of the PBC does not change unless the command is accurately received and a single latch associated with the PBC is addressed.
5. A method according to claim 1 , wherein the command is a serial bus command addressing the PBC.
6. A method according to claim 1 , wherein the command is an I2C command addressing the PBC.
7. A storage device comprising a plurality of executable instructions at least a subset of which, when executed, implement a method including:
issuing one or more command(s) to one or more inputs of a general purpose input/output (GPIO) system, wherein the command(s) cause a first output of the GPIO system associated with a first input of the inputs to issue a control signal to a latch associated with a port bypass circuit (PBC), and a second output of the GPIO system associated with a second of the inputs of the GPIO system to issue a clock signal to a latch associated with a PBC addressed by the received command(s); and
setting the state of the PBC with the received control signal if the control signal and the clock signal are consistent to change the state of the PBC.
8. A storage system comprising:
a memory device having stored therein a plurality of executable instructions; and
an execution unit, coupled to the memory device, to execute at least a subset of the plurality of executable instructions to issue one or more command(s) to one or more inputs of a general purpose input/output (GPIO) system, wherein the command(s) cause a first output of the GPIO system associated with a first input of the inputs to issue a control signal to a latch associated with a port bypass circuit (PBC), and a second output of the GPIO system associated with a second of the inputs of the GPIO system to issue a clock signal to a latch associated with a PBC addressed by the received command(s), and set the state of the PBC with the received control signal if the control signal and the clock signal are consistent to change the state of the PBC.
9. A method comprising:
issuing one or more control command(s) to a controller which, when interpreted causes the controller to issue control signals to a port bypass circuit to control an operational state of the port bypass circuit; and
verifying that the controller accurately received the one or more control commands before the control signals are passed to the port bypass circuit.
10. A method according to claim 9 , wherein issuing one or more control commands comprises:
constructing the one or more control commands in accordance with an error checking protocol.
11. A method according to claim 10 , wherein the error checking protocol includes zero or more of calculating a cyclical redundancy check (CRC) value for each command, or encoding each command.
12. A storage device comprising a plurality of machine executable instructions at least a subset of which, when executed, implement a method including:
issuing one or more control command(s) to a controller which, when interpreted causes the controller to issue control signals to a port bypass circuit to control an operational state of the port bypass circuit; and
verifying that the controller accurately received the one or more control commands before the control signals are passed to the port bypass circuit.
13. A storage system comprising:
a controller, to issue a command to change a state of a port bypass circuit (PBC); and
a general purpose input/output (GPIO) system, coupled to the controller, to receive the issued command via a first input and a second input, to generate a control signal to a latch associated with a PBC addressed by the command received via the first input, and to generate a clock signal to a latch associated with a PBC addressed by the command received via the second input, wherein the state does not change unless the first input and the second input receive the command unchanged.
14. A storage system according to claim 13 , wherein the GPIO system comprises two GPIO devices, one associated with the first input and another associated with the second input.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/619,162 US20040010635A1 (en) | 2000-08-14 | 2003-07-14 | An architecture and related methods facilitating secure port bypass circuit settings |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/638,273 US6647433B1 (en) | 2000-08-14 | 2000-08-14 | Architecture and related methods facilitating secure port bypass circuit settings |
US10/619,162 US20040010635A1 (en) | 2000-08-14 | 2003-07-14 | An architecture and related methods facilitating secure port bypass circuit settings |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/638,273 Continuation US6647433B1 (en) | 2000-08-14 | 2000-08-14 | Architecture and related methods facilitating secure port bypass circuit settings |
Publications (1)
Publication Number | Publication Date |
---|---|
US20040010635A1 true US20040010635A1 (en) | 2004-01-15 |
Family
ID=24559345
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/638,273 Expired - Fee Related US6647433B1 (en) | 2000-08-14 | 2000-08-14 | Architecture and related methods facilitating secure port bypass circuit settings |
US10/619,162 Abandoned US20040010635A1 (en) | 2000-08-14 | 2003-07-14 | An architecture and related methods facilitating secure port bypass circuit settings |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/638,273 Expired - Fee Related US6647433B1 (en) | 2000-08-14 | 2000-08-14 | Architecture and related methods facilitating secure port bypass circuit settings |
Country Status (2)
Country | Link |
---|---|
US (2) | US6647433B1 (en) |
JP (1) | JP2002077220A (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050157479A1 (en) * | 2004-01-16 | 2005-07-21 | Hayden Douglas T. | Bus device insertion and removal system |
US20090177816A1 (en) * | 2008-01-04 | 2009-07-09 | Gerald Marx | Method and system for communication with sd memory and sdio devices |
US8797082B2 (en) | 2012-09-28 | 2014-08-05 | Apple Inc. | Apparatus and methods for clock characterization |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4355389A (en) * | 1977-03-15 | 1982-10-19 | Tokyo Shibaura Electric Co., Ltd. | Microprogrammed information processing system having self-checking function |
US5109190A (en) * | 1990-02-26 | 1992-04-28 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor apparatus including semiconductor integrated circuit and operating method thereof |
US5448575A (en) * | 1991-09-17 | 1995-09-05 | Mitsubishi Denki Kabushiki Kaisha | Bypass scan path and integrated circuit device using the same |
US5703884A (en) * | 1995-06-23 | 1997-12-30 | Nec Corporation | Scanning pass test circuit |
US5812754A (en) * | 1996-09-18 | 1998-09-22 | Silicon Graphics, Inc. | Raid system with fibre channel arbitrated loop |
US6005819A (en) * | 1998-02-10 | 1999-12-21 | Samsung Electronics Co., Ltd. | Demand-anticipating power control circuits for integrated circuit devices and methods of operation thereof |
US6356984B1 (en) * | 1998-06-30 | 2002-03-12 | Sun Microsystems, Inc. | Digital data processing system having a data bus and a control bus |
US6728915B2 (en) * | 2000-01-10 | 2004-04-27 | Texas Instruments Incorporated | IC with shared scan cells selectively connected in scan path |
US6763487B2 (en) * | 1995-04-28 | 2004-07-13 | Texas Instruments Incorporated | IC with latching and switched I/O buffers |
US6769080B2 (en) * | 2000-03-09 | 2004-07-27 | Texas Instruments Incorporated | Scan circuit low power adapter with counter |
-
2000
- 2000-08-14 US US09/638,273 patent/US6647433B1/en not_active Expired - Fee Related
-
2001
- 2001-06-19 JP JP2001184472A patent/JP2002077220A/en active Pending
-
2003
- 2003-07-14 US US10/619,162 patent/US20040010635A1/en not_active Abandoned
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4355389A (en) * | 1977-03-15 | 1982-10-19 | Tokyo Shibaura Electric Co., Ltd. | Microprogrammed information processing system having self-checking function |
US5109190A (en) * | 1990-02-26 | 1992-04-28 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor apparatus including semiconductor integrated circuit and operating method thereof |
US5448575A (en) * | 1991-09-17 | 1995-09-05 | Mitsubishi Denki Kabushiki Kaisha | Bypass scan path and integrated circuit device using the same |
US6763487B2 (en) * | 1995-04-28 | 2004-07-13 | Texas Instruments Incorporated | IC with latching and switched I/O buffers |
US5703884A (en) * | 1995-06-23 | 1997-12-30 | Nec Corporation | Scanning pass test circuit |
US5812754A (en) * | 1996-09-18 | 1998-09-22 | Silicon Graphics, Inc. | Raid system with fibre channel arbitrated loop |
US6005819A (en) * | 1998-02-10 | 1999-12-21 | Samsung Electronics Co., Ltd. | Demand-anticipating power control circuits for integrated circuit devices and methods of operation thereof |
US6356984B1 (en) * | 1998-06-30 | 2002-03-12 | Sun Microsystems, Inc. | Digital data processing system having a data bus and a control bus |
US6728915B2 (en) * | 2000-01-10 | 2004-04-27 | Texas Instruments Incorporated | IC with shared scan cells selectively connected in scan path |
US6769080B2 (en) * | 2000-03-09 | 2004-07-27 | Texas Instruments Incorporated | Scan circuit low power adapter with counter |
Also Published As
Publication number | Publication date |
---|---|
US6647433B1 (en) | 2003-11-11 |
JP2002077220A (en) | 2002-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7444558B2 (en) | Programmable measurement mode for a serial point to point link | |
US7117401B2 (en) | Method and apparatus for optimizing timing for a multi-drop bus | |
US7633877B2 (en) | Method and apparatus for meeting compliance for debugging and testing a multi-speed, point-to-point link | |
EP2476062B1 (en) | Adjustment of memory write timing based on error detection techniques | |
US20200050505A1 (en) | Non-Volatile Memory Switch with Host Isolation | |
US11467909B1 (en) | Peripheral component interconnect express interface device and operating method thereof | |
US10996950B2 (en) | Apparatuses and methods involving selective disablement of side effects caused by accessing register sets | |
JP7065255B2 (en) | High-speed hardware transmission, etc. | |
US11010323B2 (en) | Apparatuses and methods involving disabling address pointers | |
US20160020952A1 (en) | Selective Single-Ended Transmission for High Speed Serial Links | |
JP3683892B2 (en) | Method and system for improved differential form transition coding | |
US6968490B2 (en) | Techniques for automatic eye-degradation testing of a high-speed serial receiver | |
US6550029B1 (en) | Testing system and methods with protocol pattern injection and external verification | |
US7986727B2 (en) | In-band method to configure equalization levels | |
US6647433B1 (en) | Architecture and related methods facilitating secure port bypass circuit settings | |
US7171525B1 (en) | Method and system for arbitrating priority bids sent over serial links to a multi-port storage device | |
US6772250B2 (en) | Boundary scannable one bit precompensated CMOS driver with compensating pulse width control | |
JPH07154451A (en) | Scanning programmable check matrix for system interconnection use | |
EP0668680B1 (en) | Address tracking over repeater based networks | |
KR102144791B1 (en) | Apparatus and method of detecting error of serial communication lines | |
US20100303085A1 (en) | Bridge apparatus and methods for coupling multiple non-fibre channel devices to a fibre channel arbitrated loop | |
US20240126663A1 (en) | Semiconductor device and link configuring method | |
US6175882B1 (en) | Network system for a first module port auto configuring same mode as a second module port | |
KR20240045073A (en) | Semiconductor device and link configuring method | |
KR100606366B1 (en) | Apparatus and method for interface control of ETHERNET physical device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |