Integrated circuit device
Granted 6 Jul 2021 · no office action yet
Current assignee: TOSHIBA ELECTRONIC DEVICES & STORAGE CORPORATION · originally Toshiba
Law firm: Law firm · Log in to unlock
Attorney: Attorney · Log in to unlock
Inventors: Shoichi Sasahara · Examiner: Raymond N Phan · AU 2185 · TC 2100
Life of the application
7 dated eventsAbstract
According to one embodiment, the first processing unit receives a first clock and outputs, at its first output node, data obtained by first processing of data at an input node. The second processing unit receives a first clock and outputs, at its second output node, data obtained by the first processing of the data at the input node. The third processing receives a second clock, outputs, from its third output nodes, data obtained by the first processing of the data at the input node, and outputs, from its fourth output nodes, data obtained by the first processing of the data at the input node. The determination unit outputs a first signal based on data at the fifth to eighth nodes respectively coupled to the first to fourth output nodes.
Description
10 parts›CROSS-REFERENCE TO RELATED APPLICATIONS
This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2019-41951, filed Mar. 7, 2019, the entire contents of which are incorporated herein by reference.
›FIELD
Embodiments described herein relate generally to an integrated circuit device.
›BACKGROUND
An integrated circuit device which includes a functional safety mechanism is known for being used in automobiles and industrial machinery in factories, and so forth. There is a demand for an integrated circuit device of this kind to be able to detect a fault or the like in more detail.
›BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates functional blocks of an integrated circuit device according to a first embodiment;
FIG. 2 illustrates functional blocks of a data processing unit according to the first embodiment;
FIG. 3 illustrates an example of details of time-multiplexed processing blocks according to the first embodiment;
FIG. 4 illustrates, over time, signals at several nodes of the time-multiplexed processing block and related signals according to the first embodiment;
FIG. 5 illustrates a flow of operation of a determination block and a controller according to the first embodiment;
FIG. 6 illustrates an example of states of data OD 1 to OD 4 according to the first embodiment;
FIG. 7 illustrates another example of states of data OD 1 to OD 4 according to the first embodiment; and
FIG. 8 illustrates functional blocks of a data processing unit for reference.
›DETAILED DESCRIPTION · 1 of 6
In general, according to one embodiment, an integrated circuit device includes: a first processing unit; a second processing unit; a third processing unit; and a determination unit. The first processing unit receives a first clock and includes a first input node and a first output node. The first processing unit is configured to output, at the first output node, data that is obtained by first processing of data at the first input node. The second processing unit receives the first clock and includes a second input node and a second output node. The second processing unit is coupled to the first input node at the second input node and configured to output, at the second output node, data that is obtained by the first processing of data at the second input node. The third processing unit receives a second clock of a shorter cycle than a cycle of the first clock and includes a third input node, a fourth input node, a third output node, and a fourth output node. The third processing unit is coupled to the first input node at the third input node and the fourth input node, configured to output, from the third output node, data that is obtained by the first processing of data at the third input node, and configured to output, at the fourth output node, data that is obtained by the first processing of data at the fourth input node. The determination unit includes a fifth input node coupled to the first output node, a sixth input node coupled to the second output node, a seventh input node coupled to the third output node, and an eighth input node coupled to the fourth output node. The determination unit is configured to output a first signal based on data at the fifth input node, data at the sixth input node, data at the seventh input node, and data at the eighth input node.
Embodiments will now be described with reference to the figures. In the following description, components with substantially the same functionalities and configurations will be referred to with the same reference numerals, and repeated descriptions may be omitted. Each functional block can be implemented as hardware, computer software, or combination of the both. For this reason, in order to clearly illustrate that each block can be any of hardware, software or combination, descriptions will be made in terms of their functionalities in general. It is not necessary that functional blocks are distinguished as in the following examples. For example, some of the functions may be implemented by functional blocks different from those illustrated below.
Furthermore, an illustrated functional block may be divided into functional sub-blocks.
Moreover, any step in a flow of a method of an embodiment is not limited to any illustrated order, and can occur in an order different from an illustrated order and/or can occur concurrently with another step.
In the specification and the claims, a phrase of a particular first component being “coupled” to another second component includes the first component being coupled to the second component either directly or via one or more components which are always or selectively conductive.
First Embodiment
1.1. Configuration (Structure)
FIG. 1 illustrates functional blocks of an integrated circuit device 1 according to a first embodiment. The integrated circuit device 1 can be realized as a semiconductor chip, for example. As illustrated in FIG. 1 , the integrated circuit device 1 includes a first circuit unit 11 , a data processing unit 12 , a second circuit unit 13 , and a controller 14 .
Any combination of the first circuit unit 11 and second circuit unit 13 is possible.
That is, the first circuit unit 11 and second circuit unit 13 can include any functions and can have any types of functions as long as data ID output from the first circuit unit 11 is processed by the data processing unit 12 and data OD output from the data processing unit 12 is received by the second circuit unit 13 . As an example, the first circuit unit 11 is capable of receiving image data from an external data input device (a camera, for example) 100 of the integrated circuit device 1 and of outputting the image data, the data processing unit 12 is capable of receiving the image data and of performing particular processing on the image data, and the second circuit unit 13 is capable of receiving the processed data. Based on an example in which the first circuit unit 11 outputs image data, the first circuit unit 11 can be a circuit that performs edge detection, for example.
The data processing unit 12 receives the data ID from the first circuit unit 11 , performs particular processing on the received data ID, and transmits the data OD obtained by the processing to the second circuit unit 13 . The processing can be any processing that is decided based on the functions of the first circuit unit 11 and the second circuit unit 13 . For instance, based on the foregoing example in which the first circuit unit 11 outputs image data, the processing by the data processing unit 12 can be processing that converts the received image data to a black-and-white image (binarization).
The data processing unit 12 includes a mechanism for maintaining the safety of a function, as will be described in detail hereinbelow. The data processing unit 12 determines its own state during data processing and the existence or non-existence of an anomaly such as a fault in particular, and when an anomaly is detected, transmits a detection signal DS to the controller 14 .
Upon receiving the detection signal DS, the controller 14 controls the second circuit unit 13 based on the fact that the detection signal DS has been received. Based on an example in which the first circuit unit 11 outputs image data and the data processing unit 12 performs black and white conversion, the second circuit unit 13 can be a circuit that performs object detection processing, for example. In addition, in the case of such an example, the second circuit unit 13 is capable of supplying a signal for controlling an actuator 110 to the actuator 110 external to the integrated circuit device 1 , and the controller 14 is capable of transmitting a signal for indicating a control-based state to a display device (for example, an LED (light emitting diode) and/or a display) 120 , which is external to the integrated circuit device 1 .
›DETAILED DESCRIPTION · 2 of 6
<1.1.1. Data Processing Unit>
FIG. 2 illustrates functional blocks of a data processing unit according to the first embodiment. The data processing unit 12 includes a data processing block 21 , a data processing block 22 , a time-multiplexed processing block 23 , and a determination block 24 .
The data (input data) ID is received at a node A of the data processing block 21 . The data processing block 21 outputs, at node C, data that is obtained by performing processing p on the input data ID. For example, the data processing block 21 is configured to enable the processing p to be performed, performs the processing p on the input data ID, and outputs, at node C, data which is obtained as a result of the processing p. The data processing block 21 receives a clock CLK 1 from the outside, for example, from the controller 14 , and operates in synchronization with the clock CLK 1 . The data that is output from the data processing block 21 is referred to hereinbelow as output data OD 1 .
The node C is coupled to a first input I 1 of the determination block 24 .
The input data ID is also received at a node B of the data processing block 22 . Like the data processing block 21 , the data processing block 22 outputs, at a node D, data that is obtained by performing the processing p on the input data ID. For example, the data processing block 22 is configured to enable the processing p to be performed, performs the processing p on the input data ID, and outputs, at node D, data which is obtained as a result of the processing p. The data processing block 22 receives a clock CLK 1 from the outside, for example, from the controller 14 , and operates in synchronization with the clock CLK 1 . The data that is output from the data processing block 22 is referred to hereinbelow as output data OD 2 . The node D is coupled to a second input I 2 of the determination block 24 .
The time-multiplexed processing block 23 receives the input data ID in parallel at two nodes E and F and, based on the principles of time-multiplexing, outputs, at nodes L and M respectively, data that is obtained by performing the processing p on either of the two input data ID, and data that is obtained by performing the processing p on the other input data ID.
As a specific example, the time-multiplexed processing block 23 includes a parallel to serial (PS) conversion block 31 , a data processing block 32 , and a serial to parallel (SP) conversion block 33 .
The PS conversion block 31 has a first input I 11 and a second input I 12 and receives input data ID in parallel at the first input I 11 and second input I 12 . The PS conversion block 31 receives a control signal S from the outside, for example, from the controller 14 , and, based on the control signal S, serially outputs, at a node G, the input data ID which has been received at the first input I 11 and the input data ID which has been received at the second input I 12 . Specifically, the PS conversion block 31 receives the same input data ID at the first input I 11 and second input I 12 , and outputs, from the node G, the input data ID(ID 1 ) received at the first input I 11 and then outputs, at the node G, the input data ID(ID 2 ) received at the second input I 12 .
The data processing block 32 is also coupled to the node G at the input. Like the data processing blocks 21 and 22 , the data processing block 32 outputs, at a node J, data that is obtained by performing the processing p on the input data ID. For example, like the data processing blocks 21 and 22 , the data processing block 32 is configured to enable the processing p to be performed, performs the processing p on the input data ID, and outputs, at the node J, data which is obtained as a result of the processing p. The data processing block 32 is configured to perform the same processing p as the data processing blocks 21 and 22 . The data processing block 32 receives a clock CLK 2 from the outside, from the controller 14 , for example, and operates in synchronization with the clock CLK 2 . The clock CLK 2 rises in a shorter cycle than the clock CLK 1 and rises in half the cycle of the rising edge of the clock CLK 1 , for example. Accordingly, the data processing block 32 is capable of performing the same processing p as the data processing blocks 21 and 22 , at a higher speed than the data processing blocks 21 and 22 , for example, at two times the speed. The data processing block 32 outputs, at the node J, data that is obtained as a result of the processing p.
For example, upon serially receiving, at the node G, the input data ID(ID 1 ), which have been received at the first input I 11 , and the input data ID(ID 2 ), which have been received at the second input I 12 , the data processing block 32 outputs data OD 3 which is obtained as a result of the processing p being performed on the data ID 1 , and then outputs data OD 4 which is obtained as a result of the processing p being performed on the data ID 2 .
The SP conversion block 33 is coupled, at the input thereof, to the node J, converts data received at the node J to parallel data, and outputs the parallel data in parallel from a first output node L and a second output node M. The SP conversion block 33 receives clocks CLK 1 and CLK 2 and operates based on the clocks CLK 1 and CLK 2 . Specifically, the SP conversion block 33 receives and holds the data OD 3 and OD 4 and then outputs the data OD 3 and OD 4 in parallel from nodes L and M, respectively.
The node L is coupled to a third input I 3 of the determination block 24 , and the node M is coupled to a fourth input I 4 of the determination block 24 . The determination block 24 compares data which is received by the first input I 1 , data which is received by the second input I 2 , data which is received by the third input I 3 , and data which is received by the fourth input I 4 , and determines the coincidence and non-coincidence of the received data. As will be described in detail, if the data processing blocks 21 and 22 , and the time-multiplexed processing block 23 (data processing block 32 in particular) are in a normal state, the data OD 1 , OD 2 , OD 3 and OD 4 can be expected to coincide with each other. When specific two of the data OD 1 , OD 2 , OD 3 and OD 4 do not coincide with each other, the determination block 24 transmits a detection signal DS indicating that there is a fault (hereinafter sometimes called a fault detection signal) to the controller 14 . The determination block 24 stores, in an internal register 24 A, values of one or more bits which are determined based on details of coincidence and non-coincidence. Furthermore, the determination block 24 transmits one of the data OD 1 , OD 2 , OD 3 and OD 4 , selected based on the determination result, to the second circuit unit 13 as the output data OD.
›DETAILED DESCRIPTION · 3 of 6
Upon receiving a fault detection signal, the controller 14 reads contents of the register 24 A and controls the second circuit unit 13 based on the contents of the register 24 A.
Alternatively, the detection signal DS may, in addition to the detection of non-coincidence, include information indicating the details of coincidence and non-coincidence. In such a case, because the controller 14 is capable of knowing the details of the determination result without accessing the register 24 A, the determination block 24 need not include the register 24 A.
1.1.2. Time-Multiplexed Processing Block
FIG. 3 illustrates an example of details of a time-multiplexed processing block 23 according to the first embodiment. FIG. 3 is based on an example in which the processing p is calculation of the fourth power of an input value, and shows an example in which the data processing block 32 has a configuration for the fourth power calculation. The details of the data processing block 32 are not limited to the example in FIG. 3 , rather, the data processing block 32 includes components and couplings that are determined based on the details of the processing p.
As illustrated in FIG. 3 , the PS conversion block 31 includes a selector 311 . The selector 311 includes a first input and a second input, and is coupled to a node E at the first input and to a node F at the second input. The selector 311 selects the node E or node F based on the control signal S, and couples the selected node E or F to its own output node, that is, the node G. As an example, the selector 311 selects the node E while the control signal S indicates data “1” (high level) and selects the node F while the control signal S indicates data “0” (low level).
The data processing block 32 includes multiplier circuits 321 and 322 and a flip-flop circuit 323 . The node G is coupled to a first input and a second input of the multiplier circuit 321 . The multiplier circuit 321 multiplies data received by the first input and data received by the second input, and outputs the multiplication result at a node H.
The node H is coupled to the input of the flip-flop circuit 323 . The flip-flop circuit 323 receives the clock CLK 2 and outputs data that has been received as an input to a node I in the order in which the data has been received in synchronization with the clock CLK 2 .
The node I is coupled to the first and second inputs of the multiplier circuit 322 . The multiplier circuit 322 multiplies data received by the first input and data received by the second input, and outputs the multiplication result at a node J.
The SP conversion block 33 includes flip-flop circuits 331 , 332 , and 333 . The flip-flop circuit 331 is coupled, at the input thereof, to the node J. The flip-flop circuit 331 receives the clock CLK 2 and outputs data that has been received at the input thereof to a node K in the order in which the data has been received in synchronization with the clock CLK 2 .
The flip-flop circuit 332 is coupled, at the input thereof, to the node K. The flip-flop circuit 332 receives the clock CLK 1 and outputs data that has been received at the input thereof to a node L in the order in which the data has been received in synchronization with the clock CLK 1 .
The flip-flop circuit 333 is coupled, at the input thereof, to the node J. The flip-flop circuit 333 receives the clock CLK 1 and outputs data that has been received at the input thereof to a node M in the order in which the data has been received in synchronization with the clock CLK 1 .
1.2. Operation
<1.2.1. Operation of Time-Multiplexed Processing Block>
FIG. 4 illustrates, over time, signals at several nodes of the time-multiplexed processing block 23 and related signals according to the first embodiment.
As illustrated in FIG. 4 , the clock CLK 1 holds a high level for an initial quarter period of one cycle and holds a low level for the remaining three-quarter period. In the example of FIG. 4 , one cycle of the clock CLK 1 extends from time t 1 to time t 4 , and the clock CLK 1 holds a high level from time t 1 to time t 2 and holds a low level from time t 2 to time t 4 . The period from time t 1 to time t 2 and the period from time t 2 to time t 3 are each half the period from time t 1 to time t 3 . The period from time t 3 to time t 4 and the period from time t 1 to time t 3 have the same length.
The clock CLK 2 has half the cycle of the clock CLK 1 and holds a high level for an initial half cycle and holds a low level for the remaining cycle. In the example of FIG. 4 , the cycle of clock CLK 2 extends from time t 1 to time t 3 , and the clock CLK 2 has an inverted logic at time t 2 . The clock CLK 2 rises with the same timing as the rising edge of the clock CLK 1 .
The control signal S has the same cycle as the clock CLK 1 and holds a high level for an initial half cycle and holds a low level for the remaining cycle. That is, the control signal S holds a high level from time t 1 to time t 3 and holds a low level from time t 3 to time t 4 . The control signal S rises with the same timing as the respective rising edges of the clocks CLK 1 and CLK 2 .
As an example, an input data ID includes consecutive data a 1 and data a 2 . The input data ID(ID 1 ) received by the first input I 11 is referred to as data a 1 and data a 2 , and the input data ID(ID 2 ) received by the second input I 12 is referred to as data b 1 and data b 2 . The data a 1 is the same as the data b 1 , and the data a 2 is the same as the data b 2 .
From time t 1 to t 4 , the data a 1 flows at node E and the data b 1 flows at node F. The control signal S comes to have a high level at time t 1 and, accordingly, the data a 1 is selected by the selector 311 from time t 1 , and the data a 1 is output at node G from time t 1 . From time t 1 , the data a 1 is received by the multiplier circuit 321 , and data a 1 2 , which has a value of the square of the data a 1 , is output at node H. The data a 1 2 is latched by the flip-flop circuit 323 .
At time t 3 , the control signal S comes to have a low level. As a result, from time t 3 , the data b 1 is output at node G, and data b 1 2 , which has a value of the square of the data b 1 , is output at node H. The data b 1 2 is latched by the flip-flop circuit 323 .
›DETAILED DESCRIPTION · 4 of 6
At time t 3 , the clock CLK 2 comes to have a high level. In response to this change, the flip-flop circuit 323 outputs, at the node I, the data held at time t 2 , that is, the data a 1 2 . The multiplier circuit 322 receives the data a 1 2 at node I and outputs data a 1 4 , which has a value of the square of the data a 1 2 , at node J. The data a 1 4 is latched by both the flip-flop circuits 331 and 333 .
From time t 4 to t 6 , the data a 2 flows at node E and the data b 2 flows at node F. The control signal S comes to have a high level at time t 4 and, accordingly, the data a 2 is selected by the selector 311 from time t 4 , and the data a 2 is output at node G from time t 4 . From time t 4 , the data a 2 is received by the multiplier circuit 321 , and data a 2 2 , which has a value of the square of the data a 2 , is output at node H. The data a 2 2 is latched by the flip-flop circuit 323 .
At time t 4 , the clock CLK 2 comes to have a high level. In response to this change, the flip-flop circuit 323 outputs, at the node I, the data held at time t 4 , that is, the data b 1 2 . The multiplier circuit 322 receives the data b 1 2 at node I and outputs data b 1 4 , which has a value of the square of the data b 1 2 , at node J. The data b 1 4 is latched by both the flip-flop circuits 331 and 333 .
In response to the clock CLK 2 coming to have a high level at time t 4 , the flip-flop circuit 331 outputs the data held at time t 4 , that is, the data a 1 4 , at node K. The data a 1 4 is latched by the flip-flop circuit 332 .
At time t 5 , the control signal S comes to have a low level. As a result, from time t 5 , the data b 2 is output at node G, and data b 2 2 , which has a value of the square of the data b 2 , is output at node H. The data b 2 2 is latched by the flip-flop circuit 323 .
At time t 5 , the clock CLK 2 comes to have a high level. In response the change, the flip-flop circuit 323 outputs, at the node I, the data held at time t 5 , that is, the data a 2 2 . The multiplier circuit 322 receives the data a 2 2 at node I and outputs data a 2 4 , which has a value of the square of the data a 2 2 , at node J. The data a 2 4 is latched by both the flip-flop circuits 331 and 333 .
In response to the clock CLK 2 coming to have a high level at time t 5 , the flip-flop circuit 331 outputs the data held at time t 5 , that is, the data b 1 4 , at node K. The data b 1 4 is latched by the flip-flop circuit 332 .
At time t 6 , the clock CLK 2 comes to have a high level. In response to the change, the flip-flop circuit 323 outputs, at the node I, the data held at time t 6 , that is, the data b 2 2 . The multiplier circuit 322 receives the data b 2 2 at node I and outputs data b 2 4 , which has a value of the square of the data b 2 2 , at node J. The data b 2 4 is latched by both the flip-flop circuits 331 and 333 .
In response to the clock CLK 2 coming to have a high level at time t 6 , the flip-flop circuit 331 outputs the data held at time t 6 , that is, the data a 2 4 , at node K. The data a 2 4 is latched by the flip-flop circuit 332 .
At time t 6 , the clock CLK 1 shifts comes to have a high level. In response to the change, the flip-flop circuit 332 outputs, at the node L, the data held at time t 6 , that is, the data a 1 4 . In addition, in response to the clock CLK 1 coming to have a high level at time t 6 , the flip-flop circuit 333 outputs, at node M, the data that held at time t 6 , that is, the data b 1 4 .
At time t 7 , in response to the clock CLK 2 coming to have a high level, the flip-flop circuit 331 outputs the data held at time t 7 , that is, the data b 2 4 , at node K. The data b 2 4 is latched by the flip-flop circuit 332 .
At time t 8 , the clock CLK 1 comes to have a high level. In response to the change, the flip-flop circuit 332 outputs, at the node L, the data held at time t 8 , that is, the data a 2 4 . In addition, in response to the clock CLK 1 coming to have a high level at time t 8 , the flip-flop circuit 333 outputs, at node M, the data that is held at time t 8 , that is, the data b 2 4 .
Thus, when the data a 1 and data b 1 are supplied from time t 1 to time t 3 , the data a 1 4 and data b 1 4 are output in parallel from time t 6 to time t 8 , and when the data a 2 and data b 2 are supplied from time t 4 to time t 6 , the data a 2 4 and data b 2 4 are output in parallel from time t 8 to time t 10 .
The data a 1 4 and data b 1 4 are the same data and the data a 2 4 and data b 2 4 are the same data, only when the data processing block 32 is operating normally.
<1.2.2. Operation of Determination Block and Control Block>
FIG. 5 illustrates a flow of operation of the determination block 24 and the controller 14 according to the first embodiment.
In step S 1 , the determination block 24 determines whether or not the data OD 1 and data OD 2 are the same. When the data OD 1 and data OD 2 are different (No branch), the determination block 24 outputs, in step S 2 , the detection signal DS indicating that a fault has occurred. When the determination of step S 1 is No, it cannot be determined which of the data OD 1 and OD 2 is correct, that is, which of the data OD 1 and OD 2 is the data obtained as a result of the input data ID undergoing the processing p. Therefore, the determination block 24 does not output output data, for example.
In step S 2 , the determination block 24 updates the value in the register 24 A with a value indicating that the data OD 1 and OD 2 do not coincide with each other. Thereafter, the processing ends.
When the determination in step S 1 is Yes, the determination block 24 determines in step S 4 whether or not the data OD 3 and OD 4 are the same. When the data OD 3 and OD 4 are the same (Yes branch), the determination block 24 determines in step S 6 whether or not the data OD 1 and OD 3 are the same. In step S 6 , OD 2 may be used instead of the data OD 1 and/or data OD 4 may be used instead of the data OD 3 . This is because, in step S 6 , the data OD 1 is the same as the data OD 2 and the data OD 3 is the same as the data OD 4 . In step S 7 , the determination block 24 outputs any one of the data OD 1 , OD 2 , OD 3 , and OD 4 as the data OD, and the processing ends.
›DETAILED DESCRIPTION · 5 of 6
In step S 4 , when the data OD 3 does not coincide with the data OD 4 (No branch), the processing goes to step S 11 . In step S 11 , the determination block 24 determines whether either a condition that the data OD 1 coincides with the data OD 3 or a condition that the data OD 1 coincides with the data OD 4 is satisfied. When the determination of step S 11 is No, this indicates an anomalous state. The anomalous state includes a fault of the determination block 24 . The No branch of step S 11 continues to step S 12 . In step S 12 , the determination block 24 outputs a fault detection signal and sets, in the register 24 A, a value indicating the anomalous state. Thereafter, the processing ends. In step S 11 , the data OD 2 may also be used in place of the data OD 1 .
In step S 11 , when the data OD 1 coincides with the data OD 3 or OD 4 (Yes branch), the processing goes to step S 14 . In step 814 , the determination block 24 outputs any of the data OD 1 and OD 2 . In step S 15 , the determination block 24 sets, in the register 24 A, a value indicating a temporary fault and outputs a fault detection signal. Thereafter, the processing ends. Steps S 14 and S 15 may also occur in the reverse order.
In step S 6 , when the data OD 1 differs from the data OD 3 (No branch), the processing goes to step S 18 . In step S 18 , the determination block 24 outputs any of the data OD 1 and OD 2 . In step S 19 , the determination block 24 sets, in the register 24 A, a value indicating aged deterioration and outputs a fault detection signal. Thereafter, the processing ends. Steps S 18 and S 19 may also occur in the reverse order.
FIG. 6 illustrates the input data ID and the data OD 1 , OD 2 , OD 3 , and OD 4 when the determination in step S 6 of FIG. 5 is No. The input data ID is data DT, and the data that is obtained by subjecting the input data DT to the processing p is data PDT.
In the case of FIG. 6 , the data OD 1 and data OD 2 are the data PDT. Meanwhile, the data OD 3 and OD 4 are both data EDT, which is different from the data PDT. In this case, the processing for generating the data OD 3 and the processing for generating the data OD 4 both generate erroneous data EDT. This fact indicates that the data processing block 32 always performs erroneous processing. This phenomenon can arise when the data processing block 32 has deteriorated through aging. This is because the input data ID is processed two times by the data processing block 32 and the same erroneous data EDT is generated in the respective processing.
The data processing blocks 21 , 22 and 32 include the same structure and operate in parallel, and therefore can likewise be regarded as having undergone aged deterioration. Aged deterioration frequently occurs as a signal delay in each of the data processing blocks 21 , 22 and 32 . The data processing block 32 operates at a higher speed than the data processing blocks 21 and 22 , and therefore its operational timing margin is smaller than the operational timing margins of the data processing blocks 21 and 22 . Accordingly, when the data processing blocks 21 , 22 and 32 has deteriorated through aging, sometimes correct data PDT is not obtained via the path of the data processing block 32 even when correct data PDT is obtained via the paths of the data processing blocks 21 and 22 . Although correct data PDT is obtained by the data processing blocks 21 and 22 based on a normal speed (that is, using clock CLK 1 ), the data processing blocks 21 , 22 and 32 has deteriorated though aging, and in the near future there is a possibility of correct data no longer being obtained by the data processing blocks 21 and 22 at a normal speed. By predetecting the aged deterioration of the data processing block 32 as a result of using data via the data processing block 32 , measures can be taken against the aged deterioration of the data processing blocks 21 , 22 and 32 before the data processing unit 12 malfunctions.
FIG. 7 illustrates the input data ID and the data OD 1 , data OD 2 , data OD 3 , and data OD 4 when the determination in step S 11 of FIG. 5 is No. In the case of FIG. 7 , the data OD 1 and data OD 2 are the data PDT. Meanwhile, one of the data OD 3 and OD 4 is the data PDT, but the other is the data EDT, which is different from the data PDT. In FIG. 7 , the data OD 3 is the data EDT by way of example. The following description is based on this example. In this case, although the data OD 3 and OD 4 are different, one of the data OD 3 and OD 4 (the data OD 4 ) is the same as the data OD 1 and OD 2 . This can be regarded to indicate that the data processing block 32 , and therefore the data processing blocks 21 , 22 and 32 has not yet badly deteriorated through aging and that failure of obtaining correct data OD 3 can be attributed to a temporary effect, such as noise. Based on such deduction, the case in FIG. 7 can be determined as being a temporary fault.
In the case of FIG. 7 , after having received a fault detection signal, the controller 14 learns, from the value in the register 24 A, that there is a temporary fault and that there is not necessarily a subsequent need to take some kind of countermeasure.
When a fault detection signal is generated in states other than those of the cases of FIGS. 6 and 7 , this indicates that the data processing unit 12 has some kind of anomaly that is neither due to the aged deterioration of the data processing blocks 21 , 22 and 32 nor a temporary fault. Such states are recognized by the controller 14 by reading the value in the register 24 A, and, based on this recognition, the controller 14 is able to perform additional processing. Such a kind of processing can include, for example, stopping the operation of a block that controls the whole system of the integrated circuit device 1 or a block downstream of the data processing unit 12 such as the second circuit unit 13 , for example.
1.3. Advantages
According to the first embodiment, an integrated circuit device enabling a fault state to be detected in more detail can be provided. The details are as follows.
›DETAILED DESCRIPTION · 6 of 6
A data processing circuit of the kind in FIG. 8 that includes a functional safety mechanism is known. This data processing circuit includes three data processing blocks 121 , 122 and 123 which perform particular processing p to respectively output data OD 11 , OD 12 and OD 13 to the determination block 125 . The determination block 125 compares the output data OD 11 , OD 12 , and OD 13 , and when any one of the output data OD 11 , OD 12 , and OD 13 (data OD 13 , for example) does not coincide with the remaining two output data (OD 11 and OD 12 , for example), the determination block 125 outputs either of the two coinciding data as the output data OD. Even when the data processing block 123 has a fault, the processing p which is to be performed can be performed by the remaining data processing blocks 121 and 122 , and data that is considered to be correct can be selected by means of a majority decision.
However, the determination block 125 is limited to being able to detect the fact that an anomaly occurs in any one of the data processing blocks 121 , 122 and 123 , and is unable to specify the cause of the anomaly. In addition, when the data processing blocks 121 , 122 and 123 have deteriorating though aging, the data OD 11 , OD 12 and OD 13 coincide with each other despite being erroneous, and therefore the determination block 125 determines that the data processing blocks 121 , 122 and 123 are operating normally. This does not enable functional safety of the data processing circuit to be realized adequately, and there is room for improvement for a data processing circuit which includes a functional safety mechanism.
According to the first embodiment, the data processing unit 12 includes two data processing blocks 21 and 22 which receive common data ID and perform the processing p, and a time-multiplexed processing block 23 which includes the data processing block 32 which receives the data ID and performs the processing p. The time-multiplexed processing block 23 causes the data processing block 32 to operate at a higher speed than the data processing blocks 21 and 22 and performs the processing p on the data ID and the respective duplicates thereof. The data processing unit 12 then compares the output data OD 1 of the data processing block 21 , the output data OD 2 of the data processing block 22 , and the two output data OD 3 and OD 4 of the time-multiplexed processing block 23 . As a result of this comparison, the determination block 24 can separately detect aged deterioration and a temporary fault of the data processing unit 12 . Accordingly, an integrated circuit device 1 which includes the data processing unit 12 which has a higher-performance functional safety mechanism can be provided.
1.4. Modified Example
The description hereinabove is based on an example in which the time-multiplexed processing block 23 receives a total of two duplicates of the data ID, the clock CLK 2 has a cycle which is two times the cycle of the clock CLK 1 , and the time-multiplexed processing block 23 outputs a total of two pieces of output data. The first embodiment is not limited to this example. The time-multiplexed processing block 23 can be configured to receive a total of N duplicates (where N is a natural number of 3 or more) of the data ID, to receive the clock CLK 2 having a cycle which is an X multiple of the cycle of the clock CLK 1 , and to output a total of X output data.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
Claims as granted
12 claimsLog in to read the claims of this application.
Log in to unlockClassifications
5 codes- G06F1/06
- G06F11/07
- G06F13/20
- H10D84/03
- H10D84/00
Claim changes
SoonSee which claims were amended, added or cancelled during examination, with every added and removed word marked.
The published claims of this application are not paired with the granted ones in what we hold.
File wrapper
See the full prosecution history — every USPTO and applicant action on this file, in order.
Log in to unlockDocuments
Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.
Log in to unlockChain of title
See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.
Log in to unlock