Data acquisition device and method of timing data sampling
10704973 ยท 2020-07-07
Assignee
Inventors
Cpc classification
A61B5/1036
HUMAN NECESSITIES
A61B2560/0223
HUMAN NECESSITIES
A61B5/6887
HUMAN NECESSITIES
G01L25/00
PHYSICS
International classification
A61B5/103
HUMAN NECESSITIES
A61B5/00
HUMAN NECESSITIES
G01L25/00
PHYSICS
A61B5/11
HUMAN NECESSITIES
Abstract
A method of timing data sampling includes, in a data acquisition device, generating sampling intervals from a system clock of the data acquisition device, sampling data at the generated sampling intervals, and receiving start of frame (SOF) signals from a port, such as a USB port. For a selected number of SOF signals received, an actual number of system clock cycles is determined for a time interval corresponding to the selected number of SOF signals. The actual number of system clock cycles is compared to a nominal number of system clock cycles and a sampling interval is adjusted based on the comparison. The actual number of system clock cycles may be determined using a count-and-capture counter. The nominal number of system clock cycles may be calculated based on a nominal system clock rate and on a known SOF interval. Generating sampling intervals may include using a divide-by-N counter.
Claims
1. A method of timing data sampling comprising, in a data acquisition device: generating sampling intervals from a system clock of the data acquisition device; sampling data at the generated sampling intervals; receiving start of frame signals from a port; and for a selected number of start of frame signals received: determining an actual number of system clock cycles for a time interval corresponding to the selected number of start of frame signals; comparing the actual number of system clock cycles to a nominal number of system clock cycles; and adjusting a sampling interval based on the comparison.
2. The method of timing data sampling as claimed in claim 1, wherein determining the actual number of system clock cycles comprises using a count-and-capture counter.
3. The method of timing data sampling as claimed in claim 1, wherein the nominal number of system clock cycles is calculated based on a nominal system clock rate and on a known start of frame interval.
4. The method of timing data sampling as claimed in claim 1, wherein generating sampling intervals comprises using a divide-by-N counter.
5. The method of timing data sampling as claimed in claim 1, wherein the port is a USB port.
6. A data acquisition device comprising: a system clock; an interval generator that generates sampling intervals from the system clock; a data sampler that samples data at the generated sampling intervals; an input port that receives start of frame signals from a port; and a sampling interval adjuster configured to: determine an actual number of system clock cycles for a time interval corresponding to a selected number of start of frame signals; compare the actual number of system clock cycles to a nominal number of system clock cycles; and adjust length of the sampling intervals based on the comparison.
7. The device as claimed in claim 6, wherein the sampling interval adjuster includes a count-and-capture counter and the actual number of system clock cycles is determined using the count-and-capture counter.
8. The device as claimed in claim 6, wherein the nominal number of system clock cycles is calculated based on a nominal system clock rate and a known start of frame interval.
9. The device as claimed in claim 6, wherein the interval generator includes a divide-by-N counter and the sampling intervals are generated using the divide-by-N counter.
10. The device as claimed in claim 6, wherein the port is a USB port.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The foregoing will be apparent from the following more particular description of example embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating embodiments of the present invention.
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
DETAILED DESCRIPTION OF THE INVENTION
(14) A description of example embodiments of the inventions follows.
(15)
(16) Force Platform Description
(17) Force platform 102 shown in
(18) Force platform 102 can include one or more force transducers or load cells for measuring forces.
(19) Force platforms and load cells using strain gauges to measure applied forces are described in U.S. Pat. No. 4,493,220, by Forest J. Carignan et al., issued Jan. 15, 1985, and incorporated herein by reference in its entirety.
(20) Signal Conditioner Description
(21) Referring back to
(22) Computer Description
(23) The signal conditioner 104 can connect to a computer 108 through some sort of medium, such as an analog card, a Universal Serial Bus (USB), an Ethernet or a serial interface. As shown in
(24) Features of a Force Platform System
(25)
(26) Connection or cable 110 can also include a communication link, such as a 1-Wire interface, to allow signal conditioner 104 to retrieve data stored in nonvolatile memory 307 of platform 102. Nonvolatile memory 307 may be read only memory (ROM) as shown in FIGS. 3A-B, or may be programmable, including reprogrammable, memory, such as an EPROM. Nonvolatile memory 307 can store force platform calibration data and may also store a platform serial number and platform capacity.
(27) As shown in
(28)
(29) The signal conditioner 104 includes, for force channel 1, an analog signal conditioning circuitry 1 that is connected to the bridge circuitry of strain gauge 301 and includes a differential amplifier 1.1. One input to differential amplifier 1.1 is the bridge output voltage VIN+ and another input is a bridge balancing voltage that is provided by the signal conditioning circuitry 1. Differential amplifier 1.1 has a gain GANAL1 and an output that is connected to a multiplexer 9. A differential amplifier 1.2 is connected between strain gauge 301 and differential amplifier 1.1 for inserting the bridge balancing voltage into force channel 1. A digital-to-analog converter (DAC) 1.3 is used to produce the bridge balancing voltage under the control of microprocessor 10. One input of differential amplifier 1.2 is connected to the output of DAC 1.3; the other input of amplifier 1.2 is connected to strain gauge 301 to receive the bridge output voltage VIN from strain gauge 301. The signal conditioning circuitry 1 also includes a power amplifier 1.4 connected to strain gauge 301 for supplying the positive bridge excitation voltage VEXE+ to strain gauge 301. Also included is a power amplifier 1.5 connected to strain gauge 301 for providing a negative bridge excitation voltage VEXE to strain gauge 301. A DAC 1.6 connected to the input of power amplifier 1.5 is used to produce the negative bridge excitation voltage VEXE under the control of microprocessor 10. Both DAC 1.3 and DAC 1.6 are connected to the SPI Bus interface 10.9 of microprocessor 10.
(30) As shown in
(31) Multiplexor 9 is a 6-to-3 differential line multiplexor that receives the six force channels from the signal conditioning circuitries 1 through 6 and multiplexes the six channels into three differential output lines that are connected to microprocessor 10. Multiplexor 9 can receive inputs, e.g., control signals, from microprocessor 10 via a 3-bit bus connection.
(32) In the example shown in
(33) Microprocessor 10 receives inputs, i.e., force signal inputs, from external multiplexor 9 via a 3-line-to-1-line differential multiplexor 10.1. In turn, microprocessor 10 communicates with external multiplexor 9 via a 3-bit bus interface 10.13. A programmable Gain Amplifier 10.2 having gain GPGA connects the output of multiplexor 10.1 to the input of a 12-bit differential input analog-to-digital converter (ADC) 10.3. Signal conditioner 104 amplifies the multiplexed analog force signal received from the signal conditioning circuitries 1 through 6 using amplifier 10.2 and converts the amplified signal to digital signals using ADC 10.3. The digitized force signals are then available for further processing, such as conditioning the signals based on calibration data. Calibration data can include calibration data retrieved from the nonvolatile memory 307 of force platform 102 and can also include signal conditioning calibration data stored in nonvolatile memory 10.8 of microprocessor 10. As shown in
(34) As described in more detail below, the ADC 10.3 is connected to a timing and synchronization circuitry that includes a programmable divide-by-N counter 10.4, a Count-and-Capture Counter 10.5, and system clock 10.6. The Count-and-Capture Counter 10.5 receives a timing signal from microprocessor 18 via 1-bit SOF to Count-and-Capture line 10.16.
(35) As shown in
(36) Genlock is a common technique where the output of one source is used to synchronize multiple devices. For example, in genlock mode signal conditioner 104 may transmit a single dataset on either the rising or falling edge of the genlock signal to a connected device, e.g., PC 108 connected via connection 112. When the genlock/trigger input is operating as a generic digital input, the state of the input can be captured and transmitted in the digital output data stream of signal conditioner 104.
(37) Signal conditioner 104 can include an auto zero button 12 that includes a switch and an LED driven by an amplifier 11. A 2-bit bus 10.15 connects microprocessor 10 to auto zero button 12 and amplifier 11. The auto-zero button 12 can be a multi-purpose button. For example, button 12 can be used to zero signal conditioner 104 or place signal conditioner 104 into diagnostic mode. The signal conditioner 104 may be zeroed by pushing the auto zero button 12 and immediately releasing it. In addition, the signal conditioner 104 may be zeroed through software. Using either method, the LED driven by amplifier 11 will flash once to confirm the zero action. To place the amplifier into diagnostic mode, a user may press and hold the auto-zero button 12 down until the LED starts to blink, then release the button. The LED, for example, will continue to blink until diagnostic mode is terminated.
(38) As shown in
(39) In the example shown in
(40) Also included in microprocessor 18 are a USB control endpoint 18.4 and a USB bulk endpoint 18.5, both of which are connected to USB interface 18.10. A FIFO interface is connected to USB bulk endpoint 18.5 for communication between microprocessors 10 and 18. The FIFO interface 18.6 is connected to interfaces 10.12 and 10.18 of microprocessor 10. In addition, microprocessor 18 includes I2C interface 18.7 for connecting USB control endpoint 18.4 to microprocessor 10. Interface 18.7 is connected to I2C interface 10.11 of microprocessor 10. Additional communication between microprocessors 10 and 18 is provided via a 1-bit bus 18.9 that connects FIFO Full to interface 10.17 of microprocessor 10.
(41) The force platform system 100 is an efficient way to define the geometrical organization of the platforms 102 and the organization of the data. Force platform system 100 facilitates organizing and coordinating the individual components of a single or multi-platform system allowing for easy setup, configuration, and reconfiguration as the testing environment changes. Features of the force platform system 100 are discussed below.
(42) 1) Correct Calibration Parameters are Applied Transparent to the User.
(43) Traditionally, when the configuration of a force platform system is changed, additional setup is required in software to complete the process. This involves loading the calibration information for each system component and testing to verify the amplifier, amplifier calibration tables, platform, and platform calibration tables are correctly synchronized together. Force platform system 100 both simplifies setup and reduces configuration error because of the following features: a) Each component of the force platform system 100, platform 102 or conditioner 104 can have its complete calibration information stored on the device itself. b) The force platform system 100 can be configured such that when the individual components are connected together the correct calibration information becomes automatically available where needed.
(44) The above features can eliminate the possibility of having calibration information matched to the wrong component. Each component, when connected to any other component, assures that the correct calibration information is transferred without user intervention. Setup time is also reduced as no manual installation of calibration information is required.
(45) 2) Data from all Platforms can be Synchronized in Time.
(46) In a multiple force plate system, such as shown in
(47) For digital acquisition systems the solution is more complex. The data sampling rate is still controlled by a crystal controlled clock, except the clock now resides on the individual signal conditioner. A six signal conditioner system, for example, may use six clocks. The problem is that all clocks contain a small amount of accuracy error. This error may be small, but it is cumulative over time. The effect is called skew; eventually some signal conditioners will have taken more data samples than others.
(48) The force platform system 100 uses a novel method to synchronize the crystal control clocks in each signal conditioner 104 to the master universal serial bus (USB) clock in the PC 108. This technique not only achieves data synchronization across multiple platforms 102 but does so with no additional setup, wiring or user intervention. This technique is described in more detail below with reference to
(49) 3) The Relationship Between the Platform Physical Layout Configuration and the Data Storage Format May be Easily Definable and Implemented Transparent to the User.
(50) Many gait laboratories use multiple force plates or platforms to capture the reaction forces and moments generated throughout a full gait cycle. Two and four-platform setups are the most common installations. The layout of a gait lab's force plates is largely dependent on the stride length of its subjects, as children clearly require closer platform spacing than adults.
(51)
(52)
(53)
(54)
(55) For gait analysis a defined relationship between platform layout and data storage format is necessary. If this relationship is not defined it is difficult to verify that the test subject performed according to protocol, and additional analysis may be required to determine the order of footfall. Traditionally re-defining the relationship between platform layout, and data storage format could involve reconfiguring both hardware and software. The force platform system 100 resolves these issues by providing the following: a) A designated platform order is definable and this order dictates the data storage format (e.g. the order in which data from the platform is presented). b) The designated platform order may be set by having a subject traverse the platforms in the desired sequence.
(56) The force platform system 100 achieves these two goals by inserting a software layer between the proprietary or third party acquisition software and the signal conditioners. This software layer receives the data and formats it in a predefined format. It is then made available through a common interface to the proprietary or third party vendor. The predefined format is determined by running a software program that employs threshold detection to determine the order of platform loading. This order is then stored and applied to future trials. The software layer and its communication with other system components is further described with reference to
(57) The Mathematics of the Force Platform System
(58) Referring back to
(59) Platform 102 in the force platform system 104 stores a platform identification and calibration matrix in non volatile memory (see
(60) When recording data, the signal conditioner 104 reads mV inputs from each platform output channel, and converts them to engineering units. When doing this the signal conditioner 104 uses calibrated gains and excitations, and provides crosstalk corrections by applying the calibration matrix. The signal conditioner 104 digital output stream to the PC 108 consists of fully processed IEEE floating point numbers presented in their respective engineering units.
(61) The signal conditioner 104 performs extensive numerical processing which includes: using factory calibrated constants in place of nominal values for gains and excitations, correcting for cable losses due to finite bridge resistances, and providing crosstalk corrections by applying a factory calibrated platform correction matrix. Signal conditioner 104 can remove a DC offset, implement a user defined DC set point, and perform rotational transformation to compensate for physical platform placement considerations.
(62) The following formula is used internally by the signal conditioner 104 to convert the platform channel outputs into engineering units.
(63)
where the terms F.sub.Chan, I.sub.ADC, C.sub.chan,col, V.sub.exc, and gain are channel specific and: ADC: Analog to digital converter F.sub.Chan: The force or moment output in engineering units for a given channel V.sub.Ref: The reference voltage of the signal conditioner ADC I.sub.FS: The full scale integer output of the signal conditioner ADC I.sub.ADC: Integer output of the ADC for a particular data sample col: A column index to the calibration matrix C.sub.chan,col: The sensitivity value from the calibration matrix. The chan subscript refers to the row. The col subscript refers to the column. V.sub.exc: The excitation voltage gain: The gain value
(64) An exemplary calibration matrix is shown in Table 1. A calibration matrix, also referred to as a sensitivity matrix, is supplied with platform 102. The calibration data can be stored in nonvolatile memory and may be programmable and retrievable by external electronics, e.g., signal conditioner 104. To use the sensitivity matrix to calculate F.sub.chan for each of the three orthogonal forces and the three orthogonal moments and torques, one can sum over all columns using the appropriate C.sub.chan,col terms for each channel.
(65) TABLE-US-00001 TABLE 1 Sample Calibration Matrix Sample Calibration Matrix Channel 0 1 2 3 4 5 VFx VFy VFz VMx VMy VMz Input to channel i(lb, in-lb) is B(l, j)times the electrical output j(uV, Vex) BP 400600-2000 Fx 0.6519 0.0068 0.0019 0.0009 0.0017 0.0003 Fy 0.0090 0.6515 0.0037 0.0009 0.0005 0.0010 Fz 0.0018 0.0017 2.5523 0.0062 0.0001 0.0026 Mx 0.0044 0.0032 0.0003 12.8281 0.0108 0.0138 My 0.0725 0.0032 0.0003 0.0058 10.1358 0.0140 Mz 0.0649 0.0821 0.0792 0.0123 0.0340 5.4451
(66) Firmware Outline
(67)
(68) Hardware initialization 502 comprises the following steps: Configuring the master system clock 10.6 to run at 100 MHz. This clock is used for all timing functions including CPU 10.7 execution speed. Configuring all CPU I/O ports. Reading and checking the signal conditioner 104 non-volatile memory 10.8. This memory saves the last saved signal conditioner 104 configuration. Configuring the internal ADC 10.3. This includes setting up a sample timing clock, which runs independent of CPU control and configuring the ADC 10.3 to generate an interrupt on sample acquisition. The sample timing clock can include Count and Capture block 10.5 and Divide by N block 10.4 of microprocessor 10, and can include Divide by N counter 18.3 of microprocessor 18. Configuring the host PC 108 command reception to generate an interrupt. Configuring signals from the host PC 108 used for inter-amplifier synchronization to generate an interrupt. Reading the data from a force platform 102 connected to the signal conditioner 104. This includes platform identification data and coefficients necessary for converting raw platform data to useable force and moment data.
(69)
(70) Software initialization 504 includes pre-calculation of all coefficients necessary for converting a raw platform data set into a useable force and moment data set. Parameters used in this calculation include signal conditioner hardware calibration values, user specified acquisition settings and platform coefficients. A last step in initialization is to set the hardware to reflect all user specified settings, enable sampling and interrupts. If the signal conditioner 104 is connected to a host 108 via the USB, it signals to the host USB that it is present (and performs a USB enumeration when queried by the host USB interface) at this time.
(71) After hardware and software initialization routines 502 and 504, the CPU enters a firmware loop. Loop processing is interrupted by data acquisition, host command reception and host synchronization signals. Synchronization signals trigger actions in the data acquisition interrupt service routine 530 (described in another section below). Acquisition of an entire data set by interrupt service routine for data sampling/sending 526 or a host command reception by the interrupt service routine for command/data receiving/sending 528 set flags which trigger an appropriate action in the loop.
(72) The Service Auto Zero Button routine 506 handles signals from the auto zero button. When the user momentarily presses the auto zero button 12 (see
(73) Upon completion of an entire force platform data acquisition set, the CPU takes the data and converts it to a force platform force and moment data set. The calculations performed are outlined above. In the firmware loop, branch point 512 looks for a flag that indicates a complete data set is acquired and ready. If a data set is ready, the loop enters the Process Data Set routine 514 to convert the data to a force and moment data set as described above.
(74) A software reset is performed whenever a recalculation of the pre-calculated coefficients used for data set processing is required. This can occur whenever the user resets a signal conditioner setting or a factory reset. In the firmware loop shown in
(75) Synchronization of Data Acquisition Among Multiple Signal Conditioners
(76) The signal conditioner 104 is a digital data acquisition device employing the Universal Serial Bus (USB) for connection to a host computer (PC). The signal conditioner 104 amplifies and filters time varying voltage data from six strain gauge channels, periodically samples the data, digitally processes the sampled data and sends the resultant data to a host PC via USB. In one embodiment, signal conditioner 104 utilizes a novel scheme for synchronizing digital data acquisition across multiple USB data acquisition devices (USBDACs) via existing signals on the USB. Methods and systems for synchronizing actions of devices connected to a host, such as a USB host, are described below. First, the conditions which cause a synchronization to occur are discussed. The synchronization scheme and its implementation in the signal conditioner 104 hardware are then presented. Finally, the advantages of this scheme are listed.
(77) The fundamental purpose of digital data acquisition is to sample an analog signal. Typically the sampling is done periodically in time across multiple channels of analog data. In this case it is important that each channel be sampled at the same time (or that there is a known constant delay between sampling of successive channels). The hardware device that converts analog data to a digital number is called an Analog-to-Digital Converter (ADC). A USBDAC contains an ADC, a sample timing clock and a USB interface for connection to a host PC with appropriate data acquisition software. When data from multiple channels are sampled by a single USBDAC, synchronization (i.e. simultaneous sampling of each channel or a known, constant delay between channels) is ensured because a single sample timing clock is used.
(78) Now consider a system comprising a host PC and multiple USBDACs, with each USBDAC having its own ADC, sample timing clock and USB connection for communicating with the host PC. The USBDACs are all instructed to sample at the same rate by the host PC; sampling is then initiated by the PC and each USBDAC begins to periodically sample and send data sets to the PC. Preferably, the data from all USBDACs are synchronized in time. The force platform system 100 may be implemented in such a system, where the USBDACs are signal conditioners 104 connected to PC 108. Two issues arise in such a system.
(79) The first is the question of whether or not a single sample initiation command can be issued to all USBDACs simultaneously and if not, whether or not the order and delay between serially issued start commands is known. For USBDACs neither is true.
(80) The second issue is the effect of small disparities in sample clock rates among the multiple USBDACs. The following example demonstrates this effect. Consider two USBDACs and their respective sample clocks: USBDAC #1 with sample clock running at rate R.sub.1=1000.000 Hz and USBDAC #2 with R.sub.2=1000.050 Hz. The 1000th sample for the USBDAC #1 will occur at (1000/R.sub.1)=1.0 s, while the 1000th sample for USBDAC #2 will occur at (1000/R.sub.2)=0.99995 s, or 50 s earlier. This delay or skew between sample times grows linearly with time.
(81) Note that in addition to introducing a set of unknown and unequal delays in the arrival times of start commands issued to multiple USB devices, the inability to simultaneously broadcast a single command to multiple USB devices also eliminates the possibility of periodically synchronizing or lining up the devices.
(82) The USB employs well defined hardware and software protocols that are implemented by manufacturers of PC and USB device hardware and software. The internal details of these protocols are typically transparent to the user of these devices. One such detail is the USB Start of Frame (SOF) signal and counter. The SOF signal can be used to circumvent the two problems described above. For the following discussion the following information about the SOF signal is pertinent. The SOF signal is generated by the host PC USB hardware and is sent to all devices at a constant defined interval, the SOF interval. The SOF signal is received by all connected USB devices at the same time. Its main function is to establish time frames for USB traffic to and from the host PC to connected USB devices. For full speed USB devices, the SOF signal is sent every 1.0 millisecond; for high speed devices the SOF is sent every 125 microseconds (s). Associated with the SOF signal is a Frame Number. The Frame Number is generated by the host PC and is used to identify the current frame. The Frame Number is contained in 11 bits and rolls over to 0 when it reaches (2.sup.111). The current Frame Number is embedded in each USB frame and is sent to each connected USB device every frame.
(83) The SOF signal can be used to simultaneously start multiple USB devices using the following scheme. When preparing to serially issue start commands issued one each to multiple devices, the host device first inspects the current Frame Number. It then calculates the Frame Number for a SOF signal which will occur sufficiently far enough in the future to allow enough time for all the serially issued start commands to reach their respective devices. The host embeds this Frame Number in each start command. The start command is then interpreted by the devices to mean start on the SOF signal with this Frame Number (as opposed to start when this command is received). To avoid ambiguity due to roll over of the current Frame Number, all serially issued start commands must reach their targets in less than 2.sup.11 frame intervals or else the number of Frame Number rollovers to wait after the SOF signal with this Frame Number must be also be embedded in the start command.
(84) The SOF signal can be also be used to correct for differences in sample rates among multiple USBDACs. Before discussing this scheme the following background concerning sample timing clocks is presented. As described above, sample timing clocks are used to time periodic sampling. Sample timing clocks are often implemented in hardware as Divide by N counters.
(85)
(86) The division process is implemented using two registers (a register is a device in which data of a finite value can be stored and manipulated). One register is the counting register; each time an input clock signal is detected, the number in the counting register is decremented by 1. The other register is the reload register. Each time the counting register reaches 0, an output clock signal is generated and the value in the counting register is set to the value in the reload register. Divide by N counter 600 can thus generate multiple output rates 604 from a single rate input clock 602.
(87) It is also convenient at this time to introduce a Capture and Hold or Count and Capture counter.
(88) Now consider a USBDAC equipped with the following hardware: an ADC, one system hardware clock running at a nominal rate F.sub.SYS, a Divide by N counter for generating a variable rate sampling clock from the system clock, a second Divide by N clock and a Capture and Hold clock. Also, the USBDAC has a USB hardware interface which makes the USB SOF signal and the Frame Number available.
(89)
(90) As shown in
(91) The schemes described above are implemented in the signal conditioner 104 in firmware and hardware. The signal conditioner 104 contains two 8051 based microprocessors (see
(92) This scheme has the following advantages: The scheme runs essentially without processor control as the counters run independent of the microprocessor once they are set up. An Interrupt is generated only when microprocessor intervention is necessary. When the signal conditioner 104 is not connected to the USB, no interrupts are generated so the microprocessor simply continues with the normal firmware. Jitter in the SOF signal is reduced by counting system clock ticks over a number of SOF intervals. Inter-Amplifier asynchronization, e.g. asynchryonization between two or more signal conditioners 104, has been reduced to less than 2 s over 24 hours. The scheme works without any signal conditioner specific measurements.
(93)
(94)
(95) The teachings of all patents, published applications and references cited herein are incorporated by reference in their entirety.
(96) The present invention may be implemented in a variety of computer architectures. The PC 108 of
(97) Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer-readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
(98) While this invention has been particularly shown and described with references to example embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention encompassed by the appended claims.