KR101735590B1 - Transaction extracting apparatus and method thereof - Google Patents
Transaction extracting apparatus and method thereof Download PDFInfo
- Publication number
- KR101735590B1 KR101735590B1 KR1020160008333A KR20160008333A KR101735590B1 KR 101735590 B1 KR101735590 B1 KR 101735590B1 KR 1020160008333 A KR1020160008333 A KR 1020160008333A KR 20160008333 A KR20160008333 A KR 20160008333A KR 101735590 B1 KR101735590 B1 KR 101735590B1
- Authority
- KR
- South Korea
- Prior art keywords
- transaction
- memory
- detection unit
- trace
- command
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0828—Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
The present invention relates to an apparatus and method for analyzing a protocol between a host and a memory, and more particularly, to an apparatus and method for extracting a transaction between a host and a memory.
Today, mobile systems such as smart phones and tablets use embedded flash memory as high-performance storage devices. Embedded flash memory has advantages of small size, low power and relatively strong durability, and the transfer speed is also relatively fast. However, since the embedded flash memory operates at a low transfer rate and at the same time low power, an unexpected error may occur while communicating with the host.
In order to cope with errors that may occur in the embedded flash memory, it is necessary to check the accuracy of the protocol such as clock, command signal, and data block in the interface step. A protocol analyzer is a device that can analyze the accuracy of a protocol.
The protocol analyzing device can collect commands or data transmitted between the embedded flash memory and the host to analyze the accuracy of the protocol. Generally, a protocol analyzing apparatus includes hardware for collecting protocols and software for analyzing collected protocols.
The hardware that collects the protocol converts the collected information into a format that is easy for the user to analyze, and then transmits it to the host. The hardware that collects the protocol can use a channel interface to transfer the converted data to the host. The software analyzing the collected protocols can be run on the host and can analyze the received information.
As the transfer rate of the embedded flash memory increases, the amount of data that the protocol analyzer needs to collect increases. Also, if the amount of collected data increases, more data needs to be transmitted to the host, so channel utilization may be lowered.
The present invention proposes a transaction extraction apparatus and method capable of reducing analysis time of analysis software by pre-processing traces before analysis software performs analysis.
The present invention proposes a transaction extracting apparatus and method for extracting and storing transactions in collected traces, thereby increasing channel utilization.
According to an embodiment of the present invention, there is provided an information processing apparatus including a trace collection unit for collecting traces between a host and a memory, a trace analysis unit for analyzing the traces to distinguish between idle periods and transactions, And a transaction storage unit for extracting the transaction other than the idle period in the trace and storing the extracted transaction together with the time stamp.
According to an embodiment of the present invention, there is provided an apparatus comprising: a command detection unit for identifying a command signal or a response signal included in a trace between a host and a memory; and a control unit for detecting, based on the command signal or the response signal, A trace analyzing apparatus including a detecting unit is provided.
According to an embodiment of the present invention, there is provided a method for processing a transaction, comprising: collecting a trace between a host and a memory; analyzing the trace to distinguish between an idle period and a transaction; generating a time stamp corresponding to a start time and an end time of the transaction And extracting the transaction from the trace, excluding the idle period, and storing the extracted transaction together with the time stamp, and a computer-readable recording medium storing the transaction extracting method.
According to one embodiment of the present invention, the analysis time of the analysis software can be reduced by preprocessing the trace before the analysis software performs the analysis.
According to an embodiment of the present invention, a channel utilization can be increased by extracting and storing a transaction in the collected trace.
1 is a diagram illustrating a memory and a host coupled with a transaction extracting apparatus according to an embodiment of the present invention.
FIG. 2 is a view showing a trace collected by a transaction extracting apparatus according to an embodiment of the present invention.
3 is a diagram illustrating a structure of a transaction extracting apparatus according to an embodiment of the present invention.
4 is a diagram illustrating a structure of a trace analysis unit according to an embodiment of the present invention.
5 is a state diagram of the command detection unit according to an embodiment of the present invention.
6A to 6G are state diagrams of a transaction detection unit according to an embodiment of the present invention.
7 is a flowchart illustrating an operation performed by the transaction extracting apparatus according to an embodiment of the present invention.
It is to be understood that the specific structural or functional descriptions of embodiments of the present invention disclosed herein are presented for the purpose of describing embodiments only in accordance with the concepts of the present invention, May be embodied in various forms and are not limited to the embodiments described herein.
Embodiments in accordance with the concepts of the present invention are capable of various modifications and may take various forms, so that the embodiments are illustrated in the drawings and described in detail herein. However, it is not intended to limit the embodiments according to the concepts of the present invention to the specific disclosure forms, but includes changes, equivalents, or alternatives falling within the spirit and scope of the present invention.
The terms first, second, or the like may be used to describe various elements, but the elements should not be limited by the terms. The terms may be named for the purpose of distinguishing one element from another, for example without departing from the scope of the right according to the concept of the present invention, the first element being referred to as the second element, Similarly, the second component may also be referred to as the first component.
It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Expressions that describe the relationship between components, for example, "between" and "immediately" or "directly adjacent to" should be interpreted as well.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms " comprises ", or " having ", and the like, are used to specify one or more of the features, numbers, steps, operations, elements, But do not preclude the presence or addition of steps, operations, elements, parts, or combinations thereof.
Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.
Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the patent application is not limited or limited by these embodiments. Like reference symbols in the drawings denote like elements.
FIG. 1 is a diagram illustrating a
Referring to FIG. 1, the
The
Referring to FIG. 1, the
The
Referring to FIG. 1, a
The trace is a list of protocols in order of time transmitted by the
A transaction is a part of a trace, a combination of command signals, response signals, and data blocks that are related to each other. (I) a command signal that the
The
Referring to FIG. 1, the
Referring to FIG. 1, the
FIG. 2 is a view showing a trace collected by a transaction extracting apparatus according to an embodiment of the present invention. The transaction extraction device can collect traces by storing the protocol of the bus connecting the host and the memory in chronological order. Figure 2 shows collected traces in chronological order along the arrow direction. FIG. 2 shows the collected traces classified into two axes (data block axis, command signal and response signal axis) according to the type.
Referring to FIG. 2, the host may forward the
Referring to FIG. 2, the memory may generate a
2, after a
2, the host may receive the data block 203 and then pass the
The
Referring to FIG. 2, the host may transmit the
2, the memory may communicate a
Referring to FIG. 2, the host may send a
According to one embodiment of the present invention, the transaction extraction device may collect traces including the
The transaction extraction device according to one embodiment may remove the
3 is a diagram illustrating a structure of a
3, the
Referring to FIG. 3, the
If the memory is an eMMC, the protocol transmitted between the host and the memory may be transmitted at a rate of either SDR (Single Data Rate) or DDR (Double Data Rate). The
Referring to FIG. 3, the
The time
In addition, the
When the speed of the clock of the memory is reduced by n times, the
For example, referring to
The time
10: 4 bit data bus
01: 1 bit data bus
00: default
10: HS200
01: High Speed (52MHz)
00: Selecting backwards compatibility interface timing
0: Invalid
Referring to FIG. 3, the
Further, the
The
The
When the
Referring to FIG. 3, the
The
4 is a diagram illustrating a structure of a
Referring to FIG. 4, the
According to one embodiment of the present invention, the
For example, in an embodiment where the memory is an eMMC, the
According to an embodiment of the present invention, the
Referring to FIG. 4, the
The
According to an embodiment of the present invention, the
For example, assume that the
Hereinafter, an embodiment in which the instruction detection unit and the transaction detection unit of the present invention are implemented by the FSM will be described. To explain the concrete state, it is assumed that the memory is eMMC, and the host and the memory transmit the command signal, the response signal and the data block based on the eMMC standard established by Joint Electron Device Engineering Council (JEDEC). In this case, the command detection unit and the transaction detection unit may include a state corresponding to the kind of the command signal defined in accordance with the eMMC standard and the type of the response signal.
It should be apparent to those of ordinary skill in the art that although the memory is an eMMC embodiment only, the present invention can be applied to other types of memory. In addition, while only the embodiments in which the instruction detection unit and the transaction detection unit of the present invention are implemented by the FSM are described, it will be apparent to those skilled in the art that the present invention can be implemented using other types of devices.
5 is a state diagram of the command detection unit according to an embodiment of the present invention. Hereinafter, the operation of the command detection unit will be described in detail with reference to each state of FIG.
Referring to FIG. 5, when the transaction extracting apparatus is initially started or reset, the instruction detecting unit is in the INITIAL state. In the INITIAL state, the command detection unit initializes all output signals or delay counts. The command detection unit may include a delay count. The command detection unit may include, based on the delay count, for suspending the identification of the command signal or the response signal for a predetermined period of time. The instruction detector moves from the next memory clock to the IDLE state.
Referring to FIG. 5, in the IDLE state, the command detection unit can determine the type of the collected trace. The instruction detection unit discriminates whether the collected trace is a command signal or a response signal based on a shift register that collects a 1-bit command line (bits stored in a specific area [39: 0] of the shift register when the memory is eMMC) can do. When the collected trace is a command signal, the command detecting unit may move to different states (CMD_16, COMMAND, CMD_23, CMD_6, and the like) according to the type of the command signal. If the collected trace is a response signal, the command detection unit can move to the RESPONSE state.
Referring to FIG. 5, the command detection unit can move to the CMD_16 state when the collected trace is a command signal (CMD16 signal in the case of eMMC) for the length of the data block. In the CMD_16 state, the command detection unit can identify the length of the data block included in the command signal. For example, the length of a data block can be identified from a specific area of the shift register (in the case of an eMMC, a bit stored in [31: 0]) and then stored in a specific variable. For convenience of explanation, it is assumed that the length of the data block identified by the command detection unit is stored in the variable name blk_len_tmp.
Referring to FIG. 5, the command detection unit can move to the CMD_23 state when the collected trace is a command signal (CMD23 signal in the case of eMMC) for the number of data blocks. In the CMD_23 state, the command detection unit can identify the number of data blocks included in the command signal. For example, the length of a data block can be identified from a specific area of the shift register (in the case of an eMMC, a bit stored in [15: 0]) and then stored in a specific variable. For convenience of explanation, it is assumed that the number of data blocks identified by the command detection unit is stored in the variable name blk_count_tmp.
Referring to FIG. 5, the command detection unit can move to the CMD_6 state when the collected trace is the command signal (CMD6 signal in the case of eMMC) for the bus width, the data transfer rate, and the data transfer mode of the memory. The host can transfer the state of the memory, such as the bus width, the data transfer rate, and the data transfer mode of the memory, to the memory using one command signal.
In the CMD_6 state, the command detection unit can identify the bus width, the data transfer rate, and the data transfer mode of the memory included in the command signal. The instruction detection unit can check whether the memory accesses a specific register (eMMC, HS_TIMING [185] and BUS_WIDTH [183]) in the memory to identify the three parameters.
Some kinds of command signals (CMD2, CMD9, CMD10 in the case of eMMC) may carry the same kind of response signal (R2 response). Referring to FIG. 5, the command detection unit can move to one state (CMD_2_9_10 state) when this command signal is detected. In the CMD_2_9_10 state, the command detection unit can set the delay count of the RSP DELAY state by the number of clocks of the response signals accompanied by these command signals.
A specific command signal (CMD0 in the case of eMMC) may not carry a response signal. Referring to FIG. 5, if the command detection unit identifies a command signal that does not involve a response signal, it can move to the CMD_0 state. In the CMD_0 state, the command detector can set the delay count to immediately terminate the RSP DELAY state.
The command detection unit can move to the COMMAND state when the remaining command signals except for the command signal described above are detected. In the COMMAND state, the command detection unit can detect the type of command signal. Further, the command detection unit can detect the size of the response signal based on the type of the command signal.
In the CMD_16, COMMAND, CMD_23, CMD_6, CMD_2_9_10 and CMD_0 states, the command detection unit can proceed to the CMD_DELAY state when the above described operation is completed or the next clock is input. Since the interpretation of the command signal in the previous state is completed, the command detection unit can stay in the CMD_DELAY state for the number of clocks in which the entire command signal is received. The length of the entire command can be 48 bits, in which case the command detector can stay in the CMD_DELAY state while the 48-bit command signal is being input (can stop progressing to the next step).
The command detection unit can stay in the CMD_DELAY state by the number of clocks stored in the delay count. The delay count can be reduced each time a clock is input. The command detection unit can move to the IDLE state when the delay count becomes zero.
Referring to FIG. 5, in the RESPONSE state, the command detection unit can identify the type of the response signal and the length of the response signal. In the RESPONSE state, the command detection unit can transmit the kind of the identified response signal to the transaction detection unit. Further, the command detection unit can set the delay count based on the length of the response signal. At the next clock, the command detector can move to the RSP_DELAY state.
Referring to FIG. 5, the command detection unit can stay in the RSP_DELAY state by the length of the response signal. The command detection unit can stay in the RSP_DELAY state by the number of clocks stored in the delay count. For example, in the embodiment for the eMMC, if the response signal is R2 RESPONSE, it can stay in the RSP_DELAY state for 136 clocks. If the length of the response signal is 48 bits, it can stay in the RSP_DELAY state for 48 clocks. The command detection unit can move to the IDLE state when the delay count becomes zero.
6A to 6G are state diagrams of a transaction detection unit according to an embodiment of the present invention. For convenience of explanation, the state of the transaction detection unit will be described with reference to FIGS. 6A to 6G. The states having the same names in FIGS. 6A to 6G (for example, the INITIAL state and the IDLE state) mean the same state.
6A to 6G, when the transaction extracting apparatus is initially started or reset, the transaction detecting unit becomes INITIAL. In the INITIAL state, the transaction detector initializes all output signals or delay counts. The transaction detector moves from the next memory clock to the IDLE state.
6A to 6G, in the IDLE state, the transaction detection unit can move to the next state corresponding to the type of command signal that the command detection unit identified. The transaction detection unit can identify the type of command signal by receiving the type of command signal from the command detection unit or by detecting the state of the command detection unit.
Referring to FIG. 6A, in the IDLE state, the transaction detection unit can move to the CMD_0 state when the collected command signal is a command signal that does not involve a response signal. In the CMD_0 state, the transaction detection unit can set the delay count based on the length of the command signal.
The transaction detector may move to the CMD_0_COUNT state at the next clock and stop tracking the state of the transaction while the command signal is being input. That is, the transaction detection unit can maintain the CMD_0_COUNT state until the delay count becomes zero. When the delay count reaches 0, the transaction detector moves to the IDLE state again.
Referring to FIG. 6B, in the IDLE state, the transaction detection unit can move to the CMD_RSP_TRANS state when the acquired command signal is a command signal accompanying a response signal. In the CMD_RSP_TRANS state, the transaction detection unit can set the delay count based on the length of the command signal. The transaction detector can move to the CMD_RSP_TRANS_COUNT state at the next clock. The transaction detector can stay in the CMD_RSP_TRANS_COUNT state for as long as the set delay count. The transaction detector moves to the WAIT_RSP_EN state when the delay count is zero.
Referring to FIG. 6B, in the WAIT_RSP_EN state, the transaction detection unit can wait for a response signal of the memory. When the command detection unit identifies the response signal, it can notify the transaction detection unit that the response signal has been received. In this case, the transaction detection unit can identify the type and length of the response signal based on the information delivered by the command detection unit. The transaction detection unit may set the delay count based on the length of the response signal. In addition, the transaction detection unit can move to the RSP_48_COUNT state or the RSP_136_COUNT state based on the length of the response signal.
The transaction detector moves to the RSP_48_COUNT state if the response signal is 48 bits long. The transaction detector moves to the RSP_136_COUNT state if the response signal is 136 bits long. The transaction detection unit can stay in the RSP_48_COUNT state or the RSP_136_COUNT state by the length of the corresponding response signal. Referring to FIG. 6B, in the RSP_136_COUNT state, the transaction detection unit can move to the IDLE state when the delay count becomes zero. In the RSP_48_COUNT state, when the delay count becomes zero, the transaction detection unit can move to the next state based on the type of command signal.
Referring to FIG. 6C, when a command signal including the number of data blocks is input, the transaction detector may interpret the command signal to identify how many data blocks are to be transmitted. The transaction detection unit can move to the CMD_BLK_COUNT state when the command detection unit receives the command signal (CMD23 signal in the case of eMMC) for the number of data blocks. In the CMD_BLK_COUNT state, the transaction detector can identify the number of data blocks and store them in a specific variable. The transaction detector can move to the CMD_RSP_TRANS_COUNT state upon completion of storage. The transaction detector may remain in the CMD_RSP_TRANS_COUNT state while the command signal is received.
Referring again to FIG. 6B, the transaction detector may move to the next state based on the type of command signal and the number of data blocks to be transmitted, when RSP_48_COUNT is ended. When the command signal is a signal for writing one data block, the transaction detection unit can wait for a time period in which one data block is transmitted. When the command signal is a signal for writing a plurality of data blocks, the transaction detection unit can wait for a time period in which a plurality of data blocks are transmitted.
FIG. 6D is a state diagram showing a state change after the RSP_48_COUNT state of the transaction detection unit in a situation where the host writes one data block to or from the memory. FIG.
Referring to FIG. 6D, in the RSP_48_COUNT state, the transaction detection unit can identify the type of command signal. The transaction detection unit can move to the SINGLE_READ_WAIT_BUS_START state when the command signal is a signal (CMD17 in the case of eMMC) from which one data block is fetched from the memory. The transaction detection unit can move to the SINGLE_WRITE_WAIT_BUS_START state when the command signal is a signal (CMD24 in the case of eMMC) that writes one data block to the memory.
The transaction detection unit can confirm the starting point of the data line based on the bus width that has been identified in the SINGLE_READ_WAIT_BUS_START state or the SINGLE_WRITE_WAIT_BUS_START state. In addition, the transaction detector may update the length of the data block. The transaction detector may update the delay count based on the length of the data block and the bus width. Referring to FIG. 6D, each of the transaction detectors can move to the SINGLE_READ_BLK_COUNT state or the SINGLE_WRITE_BLK_COUNT state.
The transaction detection unit may remain in the SINGLE_READ_BLK_COUNT state from the time when the memory starts transferring the data block to the time when the transfer of the data block is completed. The transaction detection unit can maintain the SINGLE_READ_BLK_COUNT state based on the updated delay count in the SINGLE_READ_WAIT_BUS_START state. The transaction detection unit can move to the LAST_READ_BLOCK_DELAY state when the delay count becomes zero.
The transaction detector can operate in the SINGLE_WRITE_BLK_COUNT state, similar to the SINGLE_READ_BLK_COUNT state. That is, the transaction detector may remain in the SINGLE_WRITE_BLK_COUNT state while the data block is being transferred, and may move to the LAST_WRITE_BLOCK_DELAY state when the delay count is zero.
The transaction detector can wait until the next command signal is received in LAST_READ_BLOCK_DELAY state or LAST_WRITE_BLOCK_DELAY state. When the command detection unit notifies the transaction detection unit that the next command signal has been received, the transaction detection unit can move to the next state based on the type of the received command signal.
6E is a state diagram showing a state change after the RSP_48_COUNT state of the transaction detection unit in a situation where the host writes a plurality of predetermined data blocks to the memory or fetches a predetermined plurality of data blocks from the memory.
FIG. 6F is a state diagram showing a state change after the RSP_48_COUNT state of the transaction detection unit in a situation where a host writes a plurality of unspecified data blocks into a memory, or a plurality of unspecified data blocks are fetched from a memory.
Referring to FIGS. 6E to 6F, in the RSP_48_COUNT state, the transaction detection unit can identify the type of command signal. The transaction detection unit can identify whether the command signal is a signal (CMD18 in the case of eMMC) that fetches a plurality of data blocks from the memory. In this case, the transaction detection unit can identify the number of data blocks in the command detection unit. The transaction detector can move to the MP_READ_WAIT_PRE_BUS_START state if the number of data blocks is predetermined. The transaction detector can move to the MP_READ_WAIT_OPEN_BUS_START state if the number of data blocks is not specified.
The transaction detection unit can identify whether the command signal is a signal (CMD25 in the case of eMMC) that writes a plurality of data blocks to the memory. In this case, the transaction detector can identify the number of data blocks, similar to the case where a data block is fetched from memory. The transaction detection unit can move to the MP_WRITE_WAIT_PRE_BUS_START state when the number of data blocks is predetermined. The transaction detector can move to the MP_WRITE_WAIT_OPEN_BUS_START state if the number of data blocks is not specified.
Referring to FIG. 6E, the transaction detection unit can confirm the starting point of the data line based on the bus width, in the MP_READ_WAIT_PRE_BUS_START state or the MP_WRITE_WAIT_PRE_BUS_START state. The transaction detector may update the length of the data block and then move to the MP_READ_1 BLK_LEN_PRE_COUNT state or the MP_WRITE_1 BLK_LEN_PRE_COUNT state, respectively.
Referring to FIG. 6E, the transaction detection unit can remain in the MP_READ_1 BLK_LEN_PRE_COUNT state or the MP_WRITE_1 BLK_LEN_PRE_COUNT state, while one data block is transmitted through the bus. The transaction detection unit can move to the MP_READ_BLK_COUNT state or the MP_WRITE_BLK_COUNT state when the transmission of one data block is completed.
Referring to FIG. 6E, the transaction detection unit can remain in the MP_READ_BLK_COUNT state or the MP_WRITE_BLK_COUNT state until all the data blocks are transferred. The transaction detection unit can identify the number of data blocks from the command signal (CMD23 in the case of eMMC) related to the number of data blocks identified by the command detection unit. Each time a data block is transmitted, the transaction detection unit may reduce the counter storing the number of identified data blocks by one. Therefore, when the counter becomes 0, the transaction detection unit can confirm that the transmission of the data block is completed.
Referring to FIG. 6E, in the MP_WRITE_BLK_COUNT state, the transaction detection unit can move to the DEVICE_BUSY state or the LAST_WRITE_BLOCK_DELAY state when the transmission of the data block is completed. The transaction detection unit can move to the DEVICE_BUSY state when a block of data is written after the transfer of the data block received by the memory is completed. The transaction detection unit can wait in the DEVICE_BUSY state until the memory completes writing the data block. The transaction detection unit can check whether the memory has completed the recording of the data block every preset period.
The transaction detection unit can move to the LAST_READ_BLOCK_DELAY state or the LAST_WRITE_BLOCK_DELAY state as described in FIG. 6D when the transmission of the data block is completed, or when the memory completes the recording of the data block.
Referring to FIG. 6F, when the transaction detector moves to the MP_READ_WAIT_OPEN_BUS_START state or the MP_WRITE_WAIT_OPEN_BUS_START state, it is possible to confirm whether the data block transfer has started. The transaction detection unit can move to the MP_READ_1BLK_OPEN_COUNT state or the MP_WRITE_1BLK_OPEN_COUNT state, respectively, when the transmission of the data block is started.
Referring to FIG. 6F, the transaction detection unit can stay in the MP_READ_WAIT_OPEN_BUS_START state or the MP_WRITE_WAIT_OPEN_BUS_START state while one data block is transmitted, based on the length of the previously identified data block. When the transfer of one data block is completed, the transaction detection unit can detect whether the transfer of all the data blocks is completed. If the transfer has not been completed, the transaction detection unit can move again to the MP_READ_WAIT_OPEN_BUS_START state or the MP_WRITE_WAIT_OPEN_BUS_START state, and then identify whether the transfer of the next data block has started. The transaction detection unit can move to the CMD_BLK_COUNT state when the transmission of the data block is completed.
The host can instruct the memory to abort all operations (CMD12 for eMMC). The command detection unit can notify the transaction detection unit when receiving a command signal to interrupt all operations. Referring to FIG. 6G, in this case, the transaction detection unit can move to the CMD_RSP_TRANS state in any state.
7 is a flowchart illustrating an operation performed by the transaction extracting apparatus according to an embodiment of the present invention.
At
In
More specifically, in
In
In
At
The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA) , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.
The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.
The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.
Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.
100: Host
101: Host controller
102: Analysis Software
110: Memory
111: Device controller
112: memory array
120: Transaction extractor
130: bus
140: Channel interface
Claims (16)
A trace analyzer for analyzing the trace to distinguish the idle section and the transaction;
A time stamp generator for generating a time stamp including the idle period and the time information for the transaction; And
A transaction storage unit for extracting the transaction other than the idle period in the trace and storing the extracted transaction together with the time stamp;
Lt; / RTI >
The trace-
Detecting a data rate of a protocol transmitted between the host and the memory, collecting the trace according to the detected data rate,
The transaction storage unit stores,
Storing the transaction extracted from the collected traces together with the time stamp in different memories according to the data rate,
Wherein the time information for the transaction includes a start time and an end time of the transaction indicated according to the clock of the host,
Wherein the time information on the idle period includes a length of the idle period indicated by using a change amount of a clock cycle of the memory
Transaction extractor.
The trace analyzing unit,
A command detection unit for identifying a command signal or a response signal included in the trace;
Based on the command signal or the response signal, a transaction detection unit
And a transaction extractor.
The command detection unit detects,
Wherein the command signal identifies the data transfer rate of the transaction and the bus width of the transaction.
The transaction detection unit detects,
Based on the command signal, detecting the number and length of data blocks in the trace,
And identifying a section in which the data block is transmitted based on the number and length of the data blocks.
The time stamp may include:
A clock of the host, a clock of the memory, a speed of the clock of the memory, and a data transfer rate of the transaction.
Wherein the time stamp generator comprises:
And detects the speed of the clock of the memory based on the clock of the host.
The transaction storage unit stores,
And outputting the stored transaction and the time stamp through a channel interface.
Based on the command signal or the response signal, a transaction detection unit
Lt; / RTI >
The command detection unit detects,
Identifying a length of a data block from the command signal using a shift register coupled to the bus connecting the host and the memory,
The transaction detection unit detects,
Adjusting a state of the transaction detection unit in response to the state of the transaction based on the command signal or the response signal,
Update the delay count based on the length of the identified data block, and stop adjusting the state of the transaction detector while the delay count is decreasing
Trace analysis device.
The transaction detection unit detects,
And outputs a signal for storing the transaction in accordance with the start and end of the transaction.
Collecting traces between a host and a memory coupled to the transaction extraction device;
Analyzing the traces to distinguish between idle periods and transactions;
Generating a timestamp corresponding to a start time and an end time of the transaction; And
Extracting the transaction other than the idle section from among the traces and storing the extracted transaction together with the time stamp
Lt; / RTI >
Wherein the collecting comprises:
Collecting the trace according to a data rate of a protocol transmitted between the host and the memory,
Wherein the storing step comprises:
Storing the transaction extracted from the trace together with the timestamp in a memory corresponding to the data rate
Transaction Extraction Method.
The step of distinguishing the idle period and the transaction comprises:
Identifying a command or response signal included in the trace; And
Based on the command signal or the response signal, detecting the start and end of the transaction
/ RTI >
The transaction extracting method includes:
Outputting the stored transaction and the timestamp through a channel interface
Further comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160008333A KR101735590B1 (en) | 2016-01-22 | 2016-01-22 | Transaction extracting apparatus and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160008333A KR101735590B1 (en) | 2016-01-22 | 2016-01-22 | Transaction extracting apparatus and method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101735590B1 true KR101735590B1 (en) | 2017-05-15 |
Family
ID=58739420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160008333A KR101735590B1 (en) | 2016-01-22 | 2016-01-22 | Transaction extracting apparatus and method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101735590B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190030586A (en) * | 2017-09-14 | 2019-03-22 | 삼성전자주식회사 | A quasi-synchronous protocol for large bandwidth memory systems |
US11755248B2 (en) | 2021-08-27 | 2023-09-12 | SK Hynix Inc. | Memory system and operating method of memory system |
US20230328150A1 (en) * | 2022-04-07 | 2023-10-12 | T-Mobile Usa, Inc. | Content management systems providing zero recovery point objective |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002334067A (en) * | 2001-03-29 | 2002-11-22 | Internatl Business Mach Corp <Ibm> | Method and program for verifying coherence in multi- node system, and data processing system |
KR100817203B1 (en) * | 2006-12-22 | 2008-03-27 | 재단법인서울대학교산학협력재단 | Method for reading data of a nonvolatile storage device |
JP2014211813A (en) * | 2013-04-19 | 2014-11-13 | 三菱電機株式会社 | Trace collection circuit and trace collection method |
-
2016
- 2016-01-22 KR KR1020160008333A patent/KR101735590B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002334067A (en) * | 2001-03-29 | 2002-11-22 | Internatl Business Mach Corp <Ibm> | Method and program for verifying coherence in multi- node system, and data processing system |
KR100817203B1 (en) * | 2006-12-22 | 2008-03-27 | 재단법인서울대학교산학협력재단 | Method for reading data of a nonvolatile storage device |
JP2014211813A (en) * | 2013-04-19 | 2014-11-13 | 三菱電機株式会社 | Trace collection circuit and trace collection method |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190030586A (en) * | 2017-09-14 | 2019-03-22 | 삼성전자주식회사 | A quasi-synchronous protocol for large bandwidth memory systems |
US11893239B2 (en) | 2017-09-14 | 2024-02-06 | Samsung Electronics Co., Ltd. | Quasi-synchronous protocol for large bandwidth memory systems |
US11755248B2 (en) | 2021-08-27 | 2023-09-12 | SK Hynix Inc. | Memory system and operating method of memory system |
US20230328150A1 (en) * | 2022-04-07 | 2023-10-12 | T-Mobile Usa, Inc. | Content management systems providing zero recovery point objective |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4233893B2 (en) | Instruction tracing in data processing systems. | |
US8874959B2 (en) | Information processing apparatus, image forming apparatus, and information processing program | |
US7069350B2 (en) | Data transfer control system, electronic instrument, and data transfer control method | |
KR101730781B1 (en) | Techniques for detecting race conditions | |
KR101735590B1 (en) | Transaction extracting apparatus and method thereof | |
US8959400B2 (en) | System, program, and method for collecting errors which occur while a user uses a computer | |
US9021147B1 (en) | Command queuing in disk drives | |
JP5906721B2 (en) | External output device, log collection method for external output device, and program | |
US8266371B2 (en) | Non-volatile storage device, host device, non-volatile storage system, data recording method, and program | |
CN102981944B (en) | A kind of log storing method based on file system | |
JP2010044747A (en) | Message logging for software application | |
TWI439925B (en) | Embedded systems and methods for threads and buffer management thereof | |
CN102841871A (en) | Pipeline read-write method of direct memory access (DMA) structure based on high-speed serial bus | |
CN102841870A (en) | General direct memory access (DMA) structure based on high-speed serial bus and pre-read method | |
CN110175146B (en) | Hard disk information acquisition method and device for acquiring hard disk information | |
CN102611836B (en) | High-speed image collecting method based on Labview | |
US9396145B1 (en) | In-chip bus tracer | |
US10168944B2 (en) | Information processing apparatus and method executed by an information processing apparatus | |
CN107451038B (en) | Hardware event acquisition method, processor and computing system | |
US20150154103A1 (en) | Method and apparatus for measuring software performance | |
CN103838694A (en) | FPGA high-speed USB interface data reading method | |
KR20170079368A (en) | CPU system including debug logic for gathering debug information, Computing system having the same and debugging method thereof | |
JPS6383841A (en) | Central processing unit of computer capable of program test | |
CN109857485B (en) | Programmable gpio device and time sequence implementation method based on programmable gpio device | |
JP6287691B2 (en) | Information processing apparatus, information processing method, and information processing program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |