KR101484600B1 - Counter-based multi-cycle processor control unit - Google Patents

Counter-based multi-cycle processor control unit Download PDF

Info

Publication number
KR101484600B1
KR101484600B1 KR20130060447A KR20130060447A KR101484600B1 KR 101484600 B1 KR101484600 B1 KR 101484600B1 KR 20130060447 A KR20130060447 A KR 20130060447A KR 20130060447 A KR20130060447 A KR 20130060447A KR 101484600 B1 KR101484600 B1 KR 101484600B1
Authority
KR
South Korea
Prior art keywords
counter value
counter
signal
instruction
reset signal
Prior art date
Application number
KR20130060447A
Other languages
Korean (ko)
Other versions
KR20140139835A (en
Inventor
박성경
김범석
허제식
Original Assignee
부산대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 부산대학교 산학협력단 filed Critical 부산대학교 산학협력단
Priority to KR20130060447A priority Critical patent/KR101484600B1/en
Publication of KR20140139835A publication Critical patent/KR20140139835A/en
Application granted granted Critical
Publication of KR101484600B1 publication Critical patent/KR101484600B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

카운터 기반 멀티 사이클 프로세서 제어 장치가 개시된다. 보다 상세하게는, 제1 카운터 값을 디코딩하여 인스트럭션 인출 신호를 생성하고, 상기 인스트럭션 인출 신호에 따라 인스트럭션 인출(fetch)하는 인스트럭션 인출부, 제2 카운터 값을 생성하고, 상기 제2 카운터 값과 인출된 상기 인스트럭션을 디코딩하여 데이터 패스(path) 제어신호를 생성하는 데이터 패스 제어신호 생성부, 인출된 상기 인스트럭션의 각 사이클 단계에 대응하는 카운터 값에 따라 결정되는, 제1 카운터 리셋 신호 또는 제2 카운터 리셋 신호를 생성하는 카운터 리셋 신호 생성부를 포함하는 카운터 기반 멀티 사이클 프로세서 제어 장치에 관한 것이다.A counter based multi-cycle processor control apparatus is disclosed. More particularly, the present invention relates to a method of generating an instruction fetch signal by decoding a first counter value to generate an instruction fetch signal, an instruction fetch unit fetching an instruction according to the fetch instruction signal, A first counter reset signal or a second counter signal, which is determined according to a counter value corresponding to each cycle of the fetched instruction, a data path control signal generator for decoding the instruction to generate a data path control signal, And a counter reset signal generator for generating a reset signal.

Description

카운터 기반 멀티 사이클 프로세서 제어 장치{Counter-based multi-cycle processor control unit}Counter-based multi-cycle processor control unit < RTI ID = 0.0 >

본 발명은 카운터 기반 멀티 사이클 프로세서 제어 장치에 관한 것이다. 보다 상세하게는, 카운터를 기반으로 하여 제어 신호를 생성할 수 있는 카운터 기반 멀티 사이클 프로세서 제어 장치에 관한 것이다.The present invention relates to a counter based multicycle processor control apparatus. More particularly, the present invention relates to a counter-based multi-cycle processor control apparatus capable of generating a control signal based on a counter.

종래의 다중 사이클 프로세서의 경우 주로 유한 상태 기계(FSM) 방식을 이용하여 제어 유닛을 설계한다. 도 1은, 유한 상태 기계 방식을 이용하여 설계된 종래의 제어 유닛을 개략적으로 도시한 것이다.In a conventional multi-cycle processor, a control unit is mainly designed using a finite state machine (FSM) method. Figure 1 schematically shows a conventional control unit designed using a finite state machine system.

도 1을 참조하면, 메모리로부터 인스트럭션을 프로세서로 인출(fetch)하여 명령어 레지스터에 저장한다. 다음으로, 명령어가 디코딩되어 특정한 하나의 상태(값)으로 정의된다. 제어 유닛은 정의된 상태에 따라 제어 신호들의 값이 결정된다. 그 다음 클럭에서 정의된 상태와 인스트럭션에 의해 그 다음 상태가 다시 정의되고 그 다음 상태 값에 의해 다시 제어 신호들의 값이 결정된다.Referring to FIG. 1, instructions from a memory are fetched into a processor and stored in an instruction register. Next, the instruction is decoded and defined as a particular state (value). The control unit determines the value of the control signals according to the defined state. The next state is redefined by the state and instruction defined in the next clock, and the value of the control signals is again determined by the next state value.

그러나, 종래의 유한 상태 기계 방식을 기초로 설계된 제어 유닛은, 인스트럭션 및 CURRENT_STATE를 디코딩하여 NEXT STATE를 결정하는 로직(Next state logic)을 포함하게 되어, 디코딩 과정이 복잡해지고, 전력 소모 또한 불필요하게 증가한다는 문제점이 있었다.However, the control unit designed on the basis of the conventional finite state machine system includes logic for deciding the NEXT STATE by decoding the instruction and CURRENT_STATE, which complicates the decoding process and unnecessarily increases power consumption .

또한, 종래의 유한 상태 기계 방식을 기초로 설계된 제어 유닛의 경우, 많은 상태를 가지는 경우에는 레지스터가 다수 개 사용되고, 레지스터가 차지하는 면적이 증가하는 문제점과 더불어, 현재 상태 및 다음 상태를 정의하는 HDL(Hardware Description Language) 코드 또한 길어진다는 문제점이 있었다.Further, in the case of a control unit designed on the basis of a conventional finite state machine system, in the case of a large number of states, a large number of registers are used and the area occupied by the registers is increased. In addition, Hardware Description Language) code is also long.

상기와 같은 문제점을 해결하기 위하여 본 발명이 해결하고자 하는 기술적 과제는, 종래의 유한 상태 기계 방식에 비하여 디코딩 회로를 간략화 할 수 있는 카운터 기반의 멀티 사이클 프로세서의 제어 유닛을 통하여, 프로세서의 소비 전력과 점유 면적 및 레지스터 사용이 감소될 수 있는 멀티 사이클 프로세서 제어 장치를 제공하는 것이다.SUMMARY OF THE INVENTION The present invention has been made in an effort to solve the above problems, and an object of the present invention is to provide a counter-based multi-cycle processor control unit that can simplify a decoding circuit in comparison with a conventional finite- And to provide a multicycle processor control device in which occupancy area and register usage can be reduced.

본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 아니한 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The objects of the present invention are not limited to the above-mentioned objects, and other objects not mentioned can be clearly understood by those skilled in the art from the following description.

본 발명의 일 실시예에 따른 카운터 기반 멀티 사이클 프로세서 제어 장치는, 제1 카운터 값을 디코딩하여 인스트럭션 인출 신호를 생성하고, 상기 인스트럭션 인출 신호에 따라 인스트럭션 인출(fetch)하는 인스트럭션 인출부, 제2 카운터 값을 생성하고, 상기 제2 카운터 값과 인출된 상기 인스트럭션을 디코딩하여 데이터 패스(path) 제어신호를 생성하는 데이터 패스 제어신호 생성부, 인출된 상기 인스트럭션의 각 사이클 단계에 대응하는 카운터 값에 따라 결정되는, 제1 카운터 리셋 신호 또는 제2 카운터 리셋 신호를 생성하는 카운터 리셋 신호 생성부를 포함하는 것일 수 있다.An apparatus for controlling a counter based multi-cycle processor according to an embodiment of the present invention includes an instruction fetch unit that decodes a first counter value to generate an instruction fetch signal, fetches an instruction according to the fetch instruction signal, A data path control signal generator for generating a data path control signal by decoding the second counter value and the fetched instruction, a data path control signal generator for generating a data path control signal according to a counter value corresponding to each cycle stage of the fetched instruction, And a counter reset signal generator for generating a first counter reset signal or a second counter reset signal.

일 실시예에 따르면, 상기 인스트럭션 인출부는, 상기 제1 카운터 값을 저장하는 저장부, 저장부에 저장된 상기 제1 카운터 값을 입력받아 상기 제1 카운터 값을 디코딩하여 상기 인스트럭션 인출 신호를 생성하는 출력(output)로직부를 포함하는 것일 수 있다.According to an embodiment, the instruction fetch unit may include: a storage unit for storing the first counter value; an output unit for receiving the first counter value stored in the storage unit and decoding the first counter value to generate the instruction fetch signal; and an output logic portion.

일 실시예에 따르면, 상기 저장부는, 레지스터를 포함하는 것일 수 있고, 상기 제1 카운터 값은, 초기 카운터 값 또는, 상기 초기 카운터 값 및 상기 초기 카운터 값보다 1 증가된 카운터 값을 포함하되, 상기 초기 카운터 값은, 0인 것일 수 있다.According to an embodiment, the storage unit may include a register, and the first counter value may include an initial counter value or a counter value that is incremented by one from the initial counter value and the initial counter value, The initial counter value may be zero.

일 실시예에 따르면, 상기 인스트럭션 인출부는, 상기 초기 카운터 값보다 1 증가된 값을 생성하는 연산부를 더 포함하되, 상기 연산부는, 인크리먼터 또는 가산기를 포함하는 것일 수 있고, 상기 데이터 패스 제어신호 생성부는, 상기 제2 카운터 값을 저장하는 저장부, 상기 저장부에 저장된 상기 제2 카운터 값을 입력받고, 입력받은 상기 제2 카운터 값을 디코딩하여 데이터 패스 제어신호를 생성하는 출력 로직부, 저장부에 저장된 상기 제2 카운터 값을 입력받고, 상기 제2 카운터 값보다 1 증가된 카운터 값을 생성하는 연산부, 증가된 카운터 값 및 상기 제2 카운터 값을 입력받고, 입력받은 상기 증가된 카운터 값 또는 상기 제2 카운터 값을 출력하는 제2 신호선택부를 포함하는 것일 수 있다.According to an embodiment, the instruction fetch unit may further include an operation unit that generates an incremented value from the initial counter value by one, wherein the operation unit may include an incrementor or an adder, The storage unit stores the second counter value. The output logic unit receives the second counter value stored in the storage unit and decodes the received second counter value to generate a data path control signal. An operation unit receiving the second counter value stored in the second counter and generating a counter value that is one more than the second counter value, an input unit for receiving the increased counter value and the second counter value, And a second signal selector for outputting the second counter value.

일 실시예에 따르면, 상기 제2 신호선택부는, 상기 제2 신호선택부가 정지신호(HALTb) 또는 대기신호(WAITb)를 입력받은 경우에, 상기 제2 카운터 값을 출력하는 것일 수 있고, 상기 저장부는, 레지스터를 포함하고, 기 연산부는, 인크리먼터 또는 가산기를 포함하고, 상기 제2 선택 출력부는, 멀티플렉서를 포함하는 것일 수 있다.According to one embodiment, the second signal selector may output the second counter value when the second signal selector receives the stop signal HALTb or the wait signal WAITb, The division may include a register, and the arithmetic operation unit may include an incrementor or an adder, and the second selection output may include a multiplexer.

일 실시예에 따르면, 상기 카운터 리셋 신호 생성부는, 저장부에 저장된 카운터 값을 입력받고, 상기 카운터 값보다 1 증가된 카운터 값을 연산하는 연산부, 상기 증가된 카운터 값을 입력받고, 상기 증가된 카운터 값 또는 초기 카운터 값을 출력하는 제1 신호선택부, 상기 제1 신호선택부가 출력한 상기 증가된 카운터 값을 저장하는 저장부, 상기 저장부에 저장된 복수의 카운터 값을 입력받고, 입력받은 복수의 카운터 값 각각에 대응하는 상기 제1 카운터 리셋 신호 또는 상기 제2 카운터 리셋 신호를 생성하는 출력 로직부를 포함하는 것일 수 있다.According to an embodiment, the counter reset signal generator includes an operation unit receiving a counter value stored in a storage unit and calculating a counter value that is increased by one from the counter value, receiving the incremented counter value, A first signal selector for outputting a first counter value or an initial counter value, a storage unit for storing the incremented counter value outputted by the first signal selector, a plurality of counter values stored in the storage unit, And an output logic unit for generating the first counter reset signal or the second counter reset signal corresponding to each counter value.

일 실시예에 따르면, 상기 복수의 카운터 값은, 상기 제1 카운터 값, 상기 제2 카운터 값 및 상기 제2 카운터 값에 포함되는 제3 카운터 값을 포함하고, 상기 출력 로직부가 상기 제1 카운터 값 및 상기 제2 카운터 값을 입력받은 경우에는, 상기 제1 카운터 리셋 신호를 생성하고, 상기 출력 로직부가 상기 제3 카운터 값을 입력받은 경우에는, 상기 제2 카운터 리셋 신호를 생성하되, 상기 제3 카운터 값은, 상기 제2 카운터 값 중 상기 인스트럭션의 마지막 사이클 단계에 대응하는 카운터 값인 것일 수 있다.According to one embodiment, the plurality of counter values include a third counter value included in the first counter value, the second counter value, and the second counter value, And generating the first counter reset signal when the second counter value is input and generating the second counter reset signal when the output logic unit receives the third counter value, The counter value may be a counter value corresponding to the last cycle of the instruction among the second counter values.

일 실시예에 따르면, 상기 제1 카운터 리셋 신호 또는 상기 제2 카운터 리셋 신호를 입력받고, 입력받은 상기 제1 카운터 리셋 신호 또는 상기 제2 카운터 리셋 신호에 따라, 초기 카운터 값 또는 증가된 카운터 값을 선택하여 출력하는 카운터 리셋부를 더 포함하는 것일 수 있다.According to an embodiment, the first counter reset signal or the second counter reset signal is received, and an initial counter value or an increased counter value is set in accordance with the received first counter reset signal or the second counter reset signal And a counter reset unit for selecting and outputting the reset signal.

일 실시예에 따르면, 상기 카운터 리셋부는, 상기 제1 카운터 값 또는 상기 제2 카운터 값을 입력받고, 상기 제1 카운터 값 또는 상기 제2 카운터 값보다 1 증가된 상기 증가된 카운터 값을 생성하는 연산부, 상기 증가된 카운터 값 및 상기 초기 카운터 값과, 상기 제1 카운터 리셋 신호 또는 상기 제2 카운터 리셋 신호를 입력받고, 상기 제1 카운터 리셋 신호를 입력받은 경우에는 상기 증가된 카운터 값을 출력하고, 상기 제2 카운터 리셋 신호를 입력받은 경우에는, 상기 초기 카운터 값을 출력하는 제1 신호선택부, 상기 제1 카운터 값, 상기 제2 카운터 값, 상기 증가된 카운터 값 및 상기 초기 카운터 값을 저장하는 저장부를 포함하는 것일 수 있다.According to one embodiment, the counter reset unit receives the first counter value or the second counter value, and generates an incremented counter value which is increased by one from the first counter value or the second counter value, The first counter reset signal or the second counter reset signal and outputs the increased counter value when the first counter reset signal is received, A first counter for outputting the initial counter value when the second counter reset signal is received, and a second counter for storing the first counter value, the second counter value, the increased counter value, And a storage unit.

일 실시예에 따르면, 상기 연산부는, 인크리먼터 또는 가산기를 포함하고, 상기 제1 신호선택부는, 멀티플렉서를 포함하고, 상기 저장부는, 레지스터를 포함하는 것일 수 있다.According to one embodiment, the operation unit includes an incrementor or an adder, the first signal selection unit includes a multiplexer, and the storage unit may include a register.

일 실시예에 따르면, 상기 제1 카운터 값은, 상기 인스트럭션 인출부가 상기 인스트럭션을 인출하도록 지정된 카운터 값이고, 상기 제2 카운터 값은, 상기 데이터 패스 제어신호 생성부가 상기 데이터 패스 제어신호를 생성하도록 지정된 카운터 값인 것일 수 있다.According to one embodiment, the first counter value is a counter value designated by the instruction fetch section to fetch the instruction, and the second counter value is a value indicating that the data path control signal generation section is designated to generate the data path control signal It may be a counter value.

본 발명의 일 실시예에 따른 카운터 기반 멀티 프로세서 제어 장치는, 제1 카운터 값을 입력받아 디코딩하여 인스트럭션을 인출하고, 인출된 상기 인스트럭션과 제2 카운터 값을 입력받아 디코딩하여 데이터 패스(path) 제어신호를 생성하는 출력 로직부, 상기 제1 카운터 값 또는 제2 카운터 값을 입력받고, 상기 제1 카운터 값 또는 제2 카운터 값보다 1 증가된 카운터 값을 연산하는 인크리먼터, 초기 카운터 값 또는 상기 증가된 카운터 값을 입력받고, 입력된 상기 초기 카운터 값 또는 입력된 상기 증가된 카운터 값 중 어느 하나를 선택하여 출력하는 제1 멀티플렉서, 상기 제1 멀티플렉서가 출력한 상기 초기 카운터 값 또는 상기 증가된 카운터 값 중 어느 하나의 값과, 레지스터에 저장된 현재의 카운터 값 중 어느 하나를 상기 레지스터로 전송하는 제2 멀티플렉서를 포함하되, 상기 제2 멀티플렉서는, 상기 제2 멀티플렉서가 정지 신호 또는 대기 신호를 입력받은 경우에 상기 레지스터가 출력하여 카운터 값을 상기 레지스터로 전송하는 것일 수 있다.A counter-based multiprocessor controller according to an embodiment of the present invention receives and decodes a first counter value to receive an instruction, and receives and decodes the fetched instruction and a second counter value to perform a data path control An output logic for generating a signal, an incrementer for receiving the first counter value or the second counter value and calculating a counter value that is incremented by one from the first counter value or the second counter value, A first multiplexer for receiving the incremented counter value and selecting one of the input initial count value and the incremented counter value inputted and outputting the selected initial counter value or the incremented counter value outputted by the first multiplexer, Value and a current counter value stored in a register to the register, Including but tipeul Lexus, the second multiplexer, may be to send the counter values to the register is output if the received second multiplexer inputs the stop signal or standby signal to the register.

상기와 같은 본 발명에 따르면, 카운터를 기반으로 하는 제어 유닛을 제공함으로써 종래의 유한 상태 기계 방식에 비하여 디코딩 회로를 간략화 할 수 있는 바, 프로세서의 소비 전력과 점유 면적 및 레지스터 사용이 감소될 수 있으며, HDL 코드도 간략해질 수 있다는 장점이 있다.According to the present invention, the decoding circuit can be simplified as compared with the conventional finite state machine method by providing the counter-based control unit, so that the power consumption, the occupied area and the use of the register of the processor can be reduced , And the HDL code can be simplified.

본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.The effects according to the present invention are not limited by the contents exemplified above, and more various effects are included in the specification.

도 1은 종래의 유한 상태 기계 방식을 이용한 제어 유닛의 개략도이다.
도 2는 본 발명의 일 실시예에 따른 멀티 사이클 프로세서 제어 장치를 개략적으로 도시한 것이다.
도 3은 본 발명의 일 실시예에 따른 인스트럭션 인출부를 개략적으로 도시한 것이다.
도 4는 본 발명의 일 실시예에 따른 데이터 패스(path) 제어신호 생성부를 개략적으로 도시한 것이다.
도 5는 본 발명의 일 실시예에 따른 카운터 리셋 신호 생성부를 개략적으로 도시한 것이다.
도 6은 본 발명의 일 실시예에 따른 카운터 리셋부를 개략적으로 도시한 것이다.
도 7은 본 발명의 일 실시예에 따른 카운터 기반 멀티 사이클 프로세서 제어 장치의 실시예를 개략적으로 도시한 것이다.
도 8은 본 발명의 일 실시예에 따른 카운터 기반 멀티 사이클 프로세서 제어 장치에 정지 신호 또는 대기 신호가 입력되지 아니한 경우의 동작을 순서도로 도시한 것이다.
도 9는 본 발명의 일 실시예에 따른 카운터 기반 멀티 사이클 프로세서 제어 장치에 정지 신호 또는 대기 신호가 입력된 경우의 동작을 순서도로 도시한 것이다.
도 10은 본 발명의 일 실시예에 따른 카운터 리셋부의 동작을 순서도로 도시한 것이다.
1 is a schematic diagram of a control unit using a conventional finite state machine system.
2 schematically shows a multi-cycle processor control apparatus according to an embodiment of the present invention.
Figure 3 schematically illustrates an instruction fetch according to an embodiment of the invention.
4 schematically shows a data path control signal generator according to an embodiment of the present invention.
5 schematically shows a counter reset signal generator according to an embodiment of the present invention.
6 schematically shows a counter reset unit according to an embodiment of the present invention.
FIG. 7 schematically illustrates an embodiment of a counter-based multi-cycle processor control apparatus according to an embodiment of the present invention.
FIG. 8 is a flowchart illustrating an operation when a stop signal or a wait signal is not input to the counter-based multi-cycle processor control apparatus according to an embodiment of the present invention.
FIG. 9 is a flowchart illustrating an operation when a stop signal or a wait signal is input to the counter-based multi-cycle processor control apparatus according to an embodiment of the present invention.
10 is a flowchart illustrating an operation of the counter reset unit according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention and the manner of achieving them will become apparent with reference to the embodiments described in detail below with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless defined otherwise, all terms (including technical and scientific terms) used herein may be used in a sense commonly understood by one of ordinary skill in the art to which this invention belongs. Also, commonly used predefined terms are not ideally or excessively interpreted unless explicitly defined otherwise.

또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.In addition, each block may represent a module, segment, or portion of code that includes one or more executable instructions for executing the specified logical function (s). It should also be noted that in some alternative implementations, the functions mentioned in the blocks may occur out of order. For example, two blocks that are shown one after the other may actually be executed substantially concurrently, or the blocks may sometimes be performed in reverse order according to the corresponding function.

본 명세서에서 사용되는 전문용어는 단지 특정 실시예를 언급하기 위한 것이며, 본 발명을 한정하는 것을 의도하지 않는다. 여기서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다. 명세서에서 사용되는 "포함하는"의 의미는 특정 특성, 영역, 정수, 단계, 동작, 요소 및/또는 성분을 구체화하며, 다른 특정 특성, 영역, 정수, 단계, 동작, 요소, 성분 및/또는 군의 존재나 부가를 제외시키는 것은 아니다.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 forms as used herein include plural forms as long as the phrases do not expressly express the opposite meaning thereto. Means that a particular feature, region, integer, step, operation, element and / or component is specified, and that other specific features, regions, integers, steps, operations, elements, components, and / And the like.

비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용되는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.Although the first, second, etc. are used to describe various components, it goes without saying that these components are not limited to these terms. These terms are used only to distinguish one element from another. Therefore, it goes without saying that the first component mentioned below may be the second component within the technical scope of the present invention.

본 발명의 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)와 같은 하드웨어 구성요소를 의미하며, '~부'는 소정의 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다.The term " part " used in the embodiment of the present invention means a hardware component such as software or an FPGA (Field Programmable Gate Array) or ASIC (Application Specific Integrated Circuit) . However, 'part' is not meant to be limited to software or hardware. &Quot; to " may be configured to reside on an addressable storage medium and may be configured to play one or more processors. Thus, by way of example, 'parts' may refer to components such as software components, object-oriented software components, class components and task components, and processes, functions, , Subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. The functions provided in the components and components may be further combined with a smaller number of components and components or further components and components.

이하, 첨부된 도면을 참고로 하여 본 발명의 실시예들에 대해 설명한다. Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings.

도 2는 본 발명의 일 실시예에 따른 멀티 사이클 프로세서 제어 장치(1)를 개략적으로 도시한 것이다.2 schematically shows a multi-cycle processor control apparatus 1 according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 카운터 기반 멀티 사이클 프로세서 제어 장치(1)는 인스트럭션 인출부(100), 데이터 패스(path) 제어신호 생성부(110), 카운터 리셋 신호 생성부(120) 및 카운터 리셋부(130)를 포함할 수 있다. 이하에서는, 본 발명의 일 실시예에 따른 멀티 사이클 프로세서 제어 장치(1)에 포함되는 각각의 부를 도 3 내지 도 6을 참조하여 설명하기로 한다.2, a counter-based multi-cycle processor control apparatus 1 according to an embodiment of the present invention includes an instruction fetch unit 100, a data path control signal generation unit 110, a counter reset signal generation unit 110, (120) and a counter reset unit (130). Hereinafter, each part included in the multicycle processor control apparatus 1 according to an embodiment of the present invention will be described with reference to FIG. 3 to FIG.

도 3을 참조하면, 본 발명의 일 실시예에 따른 인스트럭션 인출부(100)는, 연산부(10), 저장부(40) 및 출력 로직부(50)로 구성될 수 있다. 인스트럭션 인출부(100)는 저장부(40)에 저장되어 있는 초기 카운터 값을 디코딩하여 인스트럭션 인출 신호를 생성하고, 생성된 인스트럭션 인출 신호에 따라 소정의 기억 장치로부터 인스트럭션을 인출하는 것일 수 있다. 본 명세서에서 언급되는 제1 카운터 값은 인스트럭션을 인출하도록 지정된 카운터 값일 수 있다. 기억 장치는, 하드 디스크 드라이브(HDD), 솔리드 스테이드 드라이브(SSD), 테이프(tape) 드라이브, 광학 드라이브, RAID 어레이(array), 랜덤 액세스 메모리(RAM) 및 읽기 전용 메모리(ROM)를 포함할 수 있으나, 이에 의하여 제한되는 것은 아니며, 다양한 실시예들에 따라 제조된 반도체 소자를 포함할 수 있다. 인스트럭션 인출부(100)는, 초기 카운터 값을 수신한 경우에 인스트럭션을 인출하도록 구성되는 것이 바람직하며, 초기 카운터 값은 "0"일 수 있다. 또한, 인스트럭션 인출부(100)는 초기 카운터 값과 초기 카운터 값보다 1 또는 소정의 수치만큼 증가된 카운터 값에 대하여도, 카운터 값을 디코딩하여 인스트럭션을 인출하도록 인스트럭션 인출 신호를 생성할 수 있다. 이 경우, 연산부(10)에 의하여 증가된 카운터 값이 인스트럭션을 인출하는데 이용될 수 있는바, 연산부(10)는, 저장부(40)로부터 초기 카운터 값을 전송받아 증가된 카운터 값을 연산하고 증가된 카운터 값을 저장부(40)로 전송한 후, 출력 로직부(50)는 증가된 카운터 값으로 인스트럭션을 인출하도록 구성될 수 있다. 즉, 인스트럭션 인출부(100)는 초기 카운터 값인 "0"인 경우에만 인스트럭션을 인출하도록 구성될 수 있을 뿐만 아니라, 초기 카운터 값이 아니라고 하더라도 인스트럭션을 인출하도록 지정된 카운터 값이 입력된 경우라면 인스트럭션을 기억 장치로부터 인출할 수 있도록 구성될 수 있다. 인출된 인스트럭션은 저장부(40)에 저장될 수 있으며, 예를 들어, 명령어 레지스터에 저장될 수 있다.3, an instruction fetch unit 100 according to an embodiment of the present invention may include an operation unit 10, a storage unit 40, and an output logic unit 50. The instruction fetch unit 100 may decode an initial counter value stored in the storage unit 40 to generate an instruction fetch signal, and fetch the instruction from a predetermined memory unit according to the fetched instruction fetch signal. The first counter value referred to herein may be a counter value designated to fetch the instruction. The storage device may include a hard disk drive (HDD), a solid state drive (SSD), a tape drive, an optical drive, a RAID array, a random access memory (RAM) But is not limited thereto, and may include semiconductor devices manufactured according to various embodiments. The instruction fetch unit 100 is preferably configured to fetch the instruction when the initial counter value is received, and the initial counter value may be "0 ". Also, the instruction fetch unit 100 may generate an instruction fetch signal to decode the counter value and fetch the instruction even for the counter value increased by one or a predetermined value from the initial counter value and the initial counter value. In this case, since the counter value increased by the operation unit 10 can be used to fetch the instruction, the operation unit 10 receives the initial counter value from the storage unit 40, calculates the increased counter value, After transferring the counter value to the storage unit 40, the output logic unit 50 may be configured to fetch the instruction with the incremented counter value. In other words, not only can the instruction fetch unit 100 fetch the instruction only when the initial counter value is "0 ", but if the counter value designated to fetch the instruction is input even if it is not the initial counter value, And can be configured to be withdrawn from the apparatus. The fetched instruction may be stored in the storage unit 40 and stored, for example, in an instruction register.

도 4를 참조하면, 데이터 패스 제어신호 생성부(110)는, 연산부(10), 제2 신호선택부(30), 저장부(40) 및 출력 로직부(50)로 구성될 수 있다. 데이터 패스 제어신호 생성부(110)는, 제2 카운터 값과 인출된 인스트럭션을 기초로 데이터 패스 제어신호를 생성하는 것일 수 있다. 본 명세서에서 언급되는 제2 카운터 값은, 제1 카운터 값과 구별되는 개념으로서, 데이터 패스 제어신호를 생성하도록 지정된 카운터 값일 수 있다. 출력 로직부(50)는 인출된 인스트럭션과 제2 카운터 값을 디코딩하여 데이터 패스 제어신호를 생성하는 것일 수 있다. 제2 카운터 값은, 바람직하게는 복수의 카운터 값을 포함하는 개념일 수 있다. 또한, 본 명세서에서 언급되는 데이터 패스 제어신호는, 다양한 데이터 패스(path)에 포함되는 여러 로직 유닛들에 대한 제어 신호일 수 있으나, 이에 의하여 제한되는 것은 아니다. 카운터 기반 멀티 사이클 프로세서 제어장치(1)에 포함되는 다양한 소자들 또는 카운터 기반 멀티 사이클 프로세서 제어장치(1)와 전기적으로 연결된 다른 소자에 대한 제어 신호일 수 있다. 4, the data path control signal generation unit 110 may include an operation unit 10, a second signal selection unit 30, a storage unit 40, and an output logic unit 50. The data path control signal generation unit 110 may generate the data path control signal based on the second counter value and the fetched instruction. The second counter value referred to herein may be a counter value that is distinct from the first counter value and designated to generate the datapath control signal. The output logic section 50 may decode the fetched instruction and the second counter value to generate a datapath control signal. The second counter value may preferably be a concept comprising a plurality of counter values. In addition, the data path control signals referred to herein may be control signals for various logic units included in various data paths, but are not limited thereto. It may be a control signal for various elements included in the counter based multicycle processor control apparatus 1 or for other elements electrically connected to the counter based multicycle processor control apparatus 1. [

본 발명의 일 실시예에 따른 데이터 패스 제어신호를 생성하는 과정을 설명하기 위하여 인출된 인스트럭션을 ADD 연산을 수행하도록 하는 명령이라고 가정하기로 한다. ADD 명령을 OPcode 0011 이라고 한다면, 데이터 패스 제어신호 생성부(110)에서 데이터 패스 제어신호를 생성하기 위하여 디코딩되는 일 실시예를 2진수 표현을 기초로 한 VHDL 코드로 표현하면,In order to explain the process of generating the data path control signal according to the embodiment of the present invention, it is assumed that the fetched instruction is an instruction to perform the ADD operation. If the ADD command is OPcode 0011, the embodiment in which the data path control signal generator 110 is decoded to generate the data path control signal is represented by a VHDL code based on binary representation,

always @(*)always @ (*)

case({instruction,counter})case ({instruction, counter})

0011_000 : control_signals = 5'b110110011_000: control_signals = 5'b11011

0011_001 : control_signals = 5'b001000011_001: control_signals = 5'b00100

endcaseendcase

로 표현될 수 있다. 예를 들어, 인출된 인스트럭션과 카운터 값이 {instruction,counter} {0011,000} 이면 제어 신호는 "11011"이라는 값을 생성하게 되고, 각각의 비트가 카운터 기반 멀티 사이클 프로세서 제어장치(1) 또는 카운터 기반 멀티 사이클 프로세서 제어장치(1)와 전기적으로 연결된 다른 소자에 대한 제어 신호일 수 있다. 즉, 코드에 기술해 놓은 입력을 전달받은 때에, 해당하는 경우를 찾아 일치하는 값이 데이터 패스 제어신호로서 생성될 수 있다. 이와 같은 방식을 이용함으로써, 카운터 기반 멀티 사이클 프로세서 제어 장치는 종래 유한 상태 기계 방식을 이용한 제어 유닛과는 달리 카운터 값을 기반으로 하여 제어 신호를 생성하게 되는 바, 더 적은 레지스터 사용으로 프로세서의 소비 전력과 점유 면적이 감소될 수 있고, HDL 코드도 간략해질 수 있다. 연산부(10), 제2 신호선택부(30) 및 저장부(40)는 데이터 패스 제어신호를 생성하기 위하여 반복적으로 후술하는 각각의 기능을 수행하도록 구성될 수 있다.. ≪ / RTI > For example, if the fetched instruction and the counter value are {instruction, counter} {0011,000}, the control signal will generate a value of "11011 " And may be a control signal for other elements electrically connected to the counter based multi-cycle processor control device 1. [ That is, upon receiving the input described in the code, a corresponding value can be found and generated as a datapath control signal. By using such a method, the counter-based multi-cycle processor control apparatus generates a control signal based on the counter value unlike the conventional control unit using the finite state machine method, And the occupied area can be reduced, and the HDL code can also be simplified. The operation unit 10, the second signal selection unit 30, and the storage unit 40 may be configured to repeatedly perform the respective functions described below to generate the data path control signal.

도 5를 참조하면, 카운터 리셋 신호 생성부(120)는, 연산부(10), 제1 신호선택부(20), 저장부(40) 및 출력 로직부(50)를 포함할 수 있다.5, the counter reset signal generation unit 120 may include an operation unit 10, a first signal selection unit 20, a storage unit 40, and an output logic unit 50.

카운터 리셋 신호 생성부(120)는, 인스트럭션의 동작 사이클에 따라 활성화된 카운터 리셋 신호 또는 활성화되지 아니한 카운터 리셋 신호를 생성하도록 구성될 수 있다. 출력 로직부(50)는, 카운터 값이 인스트럭션의 마지막 사이클에 해당되는 카운터 값을 입력받은 경우에는 인스트럭션과 카운터 값의 디코딩 과정을 통하여 활성화된 카운터 리셋 신호를 생성하는 것일 수 있고, 인스트럭션의 마지막 사이클에 해당하는 카운터 값이 아닌 경우에는 인스트럭션과 카운터 리셋 신호의 디코딩 과정을 통하여 활성화되지 아니한 카운터 리셋 신호를 생성하도록 구성될 수 있다. 활성화된 카운터 리셋 신호는 저장부(40)에 저장되어 있는 카운터 값을 초기화하도록 명령하는 신호일 수 있다. 활성화되지 아니한 카운터 리셋 신호는 저장부(40)에 저장된 카운터 값을 초기화하지 아니하는 신호일 수 있다. 예를 들어, 카운터 리셋 신호가 "1"인 경우에는, 활성화된 카운터 리셋 신호일 수 있으며, 카운터 리셋 신호가 "0"인 경우에는, 활성화되지 아니한 카운터 리셋 신호일 수 있다. 다만, 이는 설명의 편의를 위하여 예시적으로 언급한 것으로서, 이에 의하여 카운터 리셋 신호의 값이 제한되는 것은 아니다. 활성화된 카운터 리셋 신호는 인스트럭션의 마지막 사이클에서 생성되는 것일 수 있으며, 그 외의 경우에는 활성화되지 아니한 카운터 리셋 신호가 생성되는 것일 수 있다. 즉, 카운터 리셋 신호는 제어 신호가 생성되는 경우마다 함께 생성되는 것일 수 있으며, 생성된 카운터 신호가 활성화된 카운터 신호인지 활성화 되지 아니한 카운터 신호인지 여부는 인스트럭션의 사이클 단계에 따라 결정되는 것일 수 있다. 출력 로직부(50)는 인스트럭션의 사이클이 단일의 사이클 단계만을 포함하는지, 다수의 단계를 포함하는지 여부를 판단할 수 있으며, 각각의 사이클에 대응하는 카운터 값을 지정하여 두는 것일 수 있다. 각각의 사이클에 대응하는 카운터 값은, 사용자로부터 지정받은 것일 수도 있으며, 인스트럭션 인출부(100)에서 인스트럭션을 인출한 경우, 인출된 인스트럭션에 따라 출력 로직부(50)에서 자동적으로 생성한 것일 수도 있다.The counter reset signal generator 120 may be configured to generate an active counter reset signal or an active counter reset signal according to the operation cycle of the instruction. The output logic unit 50 may generate an active counter reset signal through a decoding process of the instruction and the counter value when the counter value is input to the counter corresponding to the last cycle of the instruction, The counter reset signal is not activated by decoding the instruction and the counter reset signal. The activated counter reset signal may be a signal instructing to initialize the counter value stored in the storage unit 40. [ The counter reset signal that has not been activated may be a signal that does not initialize the counter value stored in the storage unit 40. For example, the counter reset signal may be an activated counter reset signal when the counter reset signal is "1 ", or may be a counter reset signal that is not activated when the counter reset signal is" 0 ". However, this is merely mentioned for convenience of explanation, and thus the value of the counter reset signal is not limited thereto. The activated counter reset signal may be generated in the last cycle of the instruction, or otherwise a non-activated counter reset signal may be generated. That is, the counter reset signal may be generated together with the generation of the control signal, and whether the generated counter signal is the active counter signal or the not activated counter signal may be determined according to the cycle phase of the instruction. The output logic section 50 may determine whether the cycle of the instruction includes only a single cycle step or a plurality of steps, and designates a counter value corresponding to each cycle. The counter value corresponding to each cycle may be the one specified by the user or automatically generated by the output logic unit 50 in accordance with the fetched instruction when fetching the instruction from the instruction fetch unit 100 .

예를 들어, 인스트럭션이 "A + B = A" 라는 연산을 수행하는 명령을 포함하는 경우에, 인스트럭션은 A와 B를 더하는(ADD) 연산과 더한 값을 A에 입력하는(EQUAL) 연산의 총 두 사이클로 이루어 질 수 있다. ADD 연산을 수행하는 단계는 인스트럭션의 첫 번째 사이클이므로, ADD 연산을 수행하도록 하는 제어신호와 함께 활성화되지 아니한 카운터 리셋 신호가 생성될 수 있다. 다음으로, EQUAL 연산을 수행하는 단계는 인스트럭션의 마지막 사이클에 해당하므로, EQUAL 연산을 수행하도록 하는 데이터 패스 제어신호를 생성하고, 활성화된 카운터 리셋 신호가 생성되는 것일 수 있다. 연산부(10), 제1 신호선택부(20) 및 저장부(40)는 카운터 리셋 신호를 생성하기 위하여 반복적으로 후술하는 각각의 기능을 수행하도록 구성될 수 있다.For example, if the instruction includes an instruction to perform an operation "A + B = A ", the instruction may include a total of (EQUAL) operations to add a value to A plus the (ADD) It can be composed of two cycles. Since the step of performing the ADD operation is the first cycle of the instruction, a counter reset signal that is not activated together with the control signal for performing the ADD operation may be generated. Next, the step of performing the EQUAL operation corresponds to the last cycle of the instruction, so that a datapath control signal for performing the EQUAL operation may be generated, and an activated counter reset signal may be generated. The operation unit 10, the first signal selection unit 20, and the storage unit 40 may be configured to repeatedly perform respective functions to generate a counter reset signal.

도 6을 참조하면, 본 발명의 일 실시예에 따른 카운터 리셋부(130)는 연산부(10), 제1 신호선택부(20) 및 저장부(40)를 포함할 수 있다. 제1 신호선택부(20)는 출력 로직부(50)가 생성한 카운터 리셋 신호를 입력받을 수 있다. 제1 신호선택부(20)는, 카운터 값을 리셋하도록 지정된 활성화된 카운터 리셋 신호를 입력받은 경우, 연산부(10)에 의한 연산에 의하여 증가된 카운터 값과 초기 카운터 값 중 초기 카운터 값인 "0"을 선택하여 출력할 수 있다. 저장부(40)에 초기 카운터 값이 저장됨으로써 카운터 값이 초기화 될 수 있다. 반면, 활성화되지 아니한 카운터 리셋 신호를 입력받은 경우에는, 증가된 카운터 값을 선택하여 출력할 수 있다.Referring to FIG. 6, the counter reset unit 130 according to an exemplary embodiment of the present invention may include an operation unit 10, a first signal selection unit 20, and a storage unit 40. The first signal selection unit 20 may receive a counter reset signal generated by the output logic unit 50. When the activated counter reset signal designated to reset the counter value is input, the first signal selector 20 sets the initial counter value "0" among the counter value increased by the operation by the operation unit 10 and the initial counter value, Can be selected and output. The initial counter value is stored in the storage unit 40 so that the counter value can be initialized. On the other hand, when the non-activated counter reset signal is input, the increased counter value can be selected and output.

본 발명의 일 실시예에 따른 연산부(10)는, 카운터 값을 수신하여 증가시키는 연산을 수행할 수 있다. 본 발명의 일 실시예로서는, 입력된 제1 카운터 값 또는 제2 카운터 값을 1 증가시키는 연산을 수행하도록 구성될 수 있다. 본 발명의 연산부(10)는, 바람직하게는 인크리먼터(incrementer, 10_1)로 이루어질 수 있다. 인크리먼터(10_1)는, 카운터 값을 1 증가시키는 기능을 수행할 수 있다. The operation unit 10 according to an embodiment of the present invention may perform an operation of receiving and incrementing a counter value. According to an embodiment of the present invention, the input counter may be configured to perform an operation of incrementing the input first counter value or the second counter value by one. The operation unit 10 of the present invention may preferably be composed of an incrementer 10_1. The incrementer 10_1 can perform a function of incrementing the counter value by one.

또한, 본 발명의 다른 실시예에 의하면, 연산부(10)는 가산기로 구성될 수도 있다. 가산기는 예를 들어, 1자릿수의 2진수를 더한 결과인 합(sum)과, 자리올림(carry)이 발생하였는지 아닌지를 계산하는 신호 처리 회로일 수 있다. Further, according to another embodiment of the present invention, the arithmetic unit 10 may be constituted by an adder. The adder may be, for example, a sum which is a result of adding one digit binary number and a signal processing circuit for calculating whether a carry has occurred or not.

본 명세서에서 언급되는 제1 카운터 값은, 인스트럭션을 인출하도록 지정된 카운터 값일 수 있다. 제2 카운터 값은, 데이터 패스 제어신호를 생성하도록 지정된 카운터 값일 수 있다. 다만, 제2 카운터 값 중, 인스트럭션의 마지막 사이클에 대응되는 카운터 값일 경우에는 카운터 리셋 신호 생성부(120)가 활성화된 카운터 리셋 신호를 생성하도록 구성될 수 있다. 초기 카운터 값은 "0"인 것이 바람직할 것이며, 제1 카운터 값은 초기 카운터 값을 포함하는 개념일 수 있다. 다시 말하면, 제1 카운터 값이 초기 카운터 값과 일치할 수 있으며, 몇몇 실시예에서는 제1 카운터 값이 초기 카운터 값을 포함하는 개념일 수 있다.The first counter value referred to herein may be a counter value designated to fetch the instruction. The second counter value may be a counter value designated to generate the datapath control signal. However, the counter reset signal generator 120 may be configured to generate the counter reset signal that is activated when the counter value corresponds to the last cycle of the instruction among the second counter values. The initial counter value may preferably be "0 ", and the first counter value may be a concept including an initial counter value. In other words, the first counter value may coincide with the initial counter value, and in some embodiments, the first counter value may be a concept that includes the initial counter value.

제1 신호선택부(20)는 인크리먼터(10_1)로 구성될 수 있는 연산부(10)와 전기적으로 연결될 수 있다. 제1 신호선택부(20_1)는, 초기 카운터 값 또는 연산부(10)가 출력한 증가된 카운터 값을 입력받도록 구성될 수 있다. 또한, 제1 신호선택부(20)는 카운터 리셋 신호를 입력받도록 구성될 수 있는데, 활성화된 카운터 리셋 신호를 입력받은 경우에는, 초기 카운터 값을 선택하여 출력할 수 있고, 활성화되지 아니한 카운터 리셋 신호를 수신한 경우에는 연산부(10)가 출력한 증가된 카운터 값을 선택하여 출력하는 것일 수 있다. 일 실시예로서, 카운터 리셋 신호가 포함하는 카운터 리셋 값이 "1"인 경우에는 활성화된 카운터 리셋 신호일 수 있으며, 이 경우 저장부(40)에 저장되는 카운터 값이 "0"이 되어 초기 상태로 돌아갈 수 있다. 제1 신호선택부(20)에 입력되는 초기 카운터 값은, 저장부(40)에 저장되어 있는 초기 카운터 값을 입력받는 것이 바람직할 것이나, 다른 기억 장치 또는 I/O 모듈로부터 입력받는 경우를 배제하는 것은 아니다. 제1 신호선택부(20)는 멀티플렉서(20_1)로 구성될 수 있다.The first signal selector 20 may be electrically connected to the calculator 10, which may be configured as an incrementer 10_1. The first signal selection unit 20_1 may be configured to receive an initial counter value or an incremented counter value output by the operation unit 10. [ The first signal selector 20 may be configured to receive a counter reset signal. When the activated counter reset signal is received, the first signal selector 20 can select and output an initial counter value, It may be possible to select and output an incremented counter value output by the operation unit 10. [ In this case, the counter value stored in the storage unit 40 becomes "0" and the counter value is reset to the initial state I can go back. It is preferable that the initial counter value input to the first signal selection unit 20 be input to the initial counter value stored in the storage unit 40. However, It does not. The first signal selector 20 may be composed of a multiplexer 20_1.

제2 신호선택부(30)는, 입력된 신호를 선택적으로 출력한다는 점에서 제1 신호선택부(20)와 유사한 기능을 수행할 수 있다. 제2 신호선택부(30)는, 제1 신호선택부(20)가 출력한 카운터 값과, 저장부(40)로부터 직접 입력받는 카운터 값 중에서 어느 하나의 값을 선택적으로 출력하도록 구성될 수 있다. 여기에서, "직접 입력받는"다는 것은, 저장부(40)에 저장되어 있는 카운터 값이 연산부(20)를 거치지 아니하고 바로 제2 신호선택부(30)로 입력되는 것을 의미할 수 있다. 즉, 증가되지 아니한 현재의 카운터 값을 의미하는 것일 수 있다. 제2 신호선택부(30)는, 정지 신호(HALTb) 또는 대기 신호(WAITb)를 입력받은 경우에는 저장부(40)로부터 직접 입력 받은 현재의 카운터 값을 출력하도록 구성될 수 있다. 정지 신호(HALTb) 또는 대기 신호(WAITb)는 Active low 신호일 수 있고, 정지 신호 또는 대기 신호 중 어느 하나라도 active 상태에 있게 된다면 카운터 값은 현재의 카운터 값을 유지하도록 구성될 수 있다. 제2 신호선택부(30)는 멀티플렉서(30_1)로 구성될 수 있다.The second signal selection unit 30 may perform a function similar to that of the first signal selection unit 20 in that the second signal selection unit 30 selectively outputs the input signal. The second signal selector 30 may be configured to selectively output any one of a counter value output by the first signal selector 20 and a counter value directly input from the storage unit 40 . Here, the "direct input" means that the counter value stored in the storage unit 40 is directly input to the second signal selection unit 30 without passing through the operation unit 20. [ That is, the current counter value that has not been increased. The second signal selection unit 30 may be configured to output the current counter value directly input from the storage unit 40 when the stop signal HALTb or the wait signal WAITb is input. The stop signal HALTb or the wait signal WAITb may be an active low signal and the counter value may be configured to maintain the current counter value if either the stop signal or the wait signal is in an active state. The second signal selector 30 may be configured as a multiplexer 30_1.

저장부(40)는 적어도 하나의 레지스터(40_1)로 구성될 수 있다. 레지스터(40_1)는 클럭 펄스를 입력받도록 구성될 수 있다. 레지스터(40_1)는 소정의 데이터 등을 저장할 수 있는 메인 메모리(미도시)로부터 읽어온 명령어나 데이터를 저장하거나 연산된 결과를 저장할 수 있다. 레지스터(40_1)는 어드레스 레지스터, 프로그램 카운터, 데이터 레지스터, 명령어 레지스터 및 어큐뮬레이터 등으로 분류될 수 있다. 어드레스 레지스터는 메모리로부터 데이터를 읽거나 메모리에 데이터를 쓸 메모리 주소를 저장할 수 있다. 프로그램 카운터는 다음에 실행될 명령어가 저장된 메모리 주소를 저장할 수 있다. 데이터 레지스터는 메모리로부터 읽어온 데이터를 저장할 수 있다. 명령어 레지스터는 메모리로부터 읽어온 명령어를 저장할 수 있다. 레지스터(40_1)는 설명된 레지스터 이외에도 다양한 기능을 갖는 레지스터를 포함할 수 있다. 레지스터(40_1)는 데이터 타입 비트를 저장할 수 있는 데이터 타입 필드 및 데이터를 저장할 수 있는 데이터 필드를 포함한다. 여기서, 데이터 타입 비트는 테이터의 타입을 표시하기 위한 비트일 수 있다. 데이터 타입은 데이터의 크기 또는 사인/언사인과 관련될 수 있다.The storage unit 40 may include at least one register 40_1. The register 40_1 may be configured to receive a clock pulse. The register 40_1 may store a command word or data read from a main memory (not shown) capable of storing predetermined data or the like, or may store a result of the operation. The register 40_1 may be classified into an address register, a program counter, a data register, an instruction register and an accumulator. An address register can store a memory address to read data from or write data to memory. The program counter may store the memory address where the next instruction to be executed is stored. The data register can store the data read from the memory. The instruction register can store the instruction read from memory. The register 40_1 may include a register having various functions in addition to the described register. The register 40_1 includes a data type field capable of storing data type bits and a data field capable of storing data. Here, the data type bit may be a bit for indicating the type of the data. The data type may be related to the size of the data or the sign / sign.

본 발명의 일 실시예에 따른 저장부(40)는, 초기 카운터 값, 제1 카운터 값, 제2 카운터 값 및 증가된 카운터 값을 저장할 수 있다. 초기 카운터 값은 저장부(40)에 미리 저장되어 있는 것일 수 있다. 저장부(40)는 클럭 펄스를 입력 받도록 구성될 수 있다. 저장부(40)는, 저장부(40)에 입력된 클럭 펄스에 따라 카운터 값을 출력하는 것일 수 있다.The storage unit 40 may store an initial counter value, a first counter value, a second counter value, and an incremented counter value according to an embodiment of the present invention. The initial counter value may be stored in the storage unit 40 in advance. The storage unit 40 may be configured to receive a clock pulse. The storage unit 40 may output the counter value according to the clock pulse input to the storage unit 40.

본 발명의 일 실시예에 따른 출력 로직부(50)가 디코딩하는 방식을 VHDL 코드로 예를 들어 재 설명하면, For example, if the VHDL code is used to decode the output logic unit 50 according to an embodiment of the present invention,

always @(*)always @ (*)

casex({instruction,counter})casex ({instruction, counter})

xxxx_000 : control_signals = 6'b010000; //instruction fetchxxxx_000: control_signals = 6'b010000; // instruction fetch

xxxx_001 : control_signals = 6'b001000; //instruction fetchxxxx_001: control_signals = 6'b001000; // instruction fetch

0111_010 : control_signals = 6'b000110; //add 1 cycle0111_010: control_signals = 6'b000110; // add 1 cycle

0111_011 : control_signals = 6'b000101; //add last cycle0111_011: control_signals = 6'b000101; // add last cycle

EndcaseEndcase

로 개략적으로 표현될 수 있다.. ≪ / RTI >

출력 로직부(50)에 입력값이 {instruction, counter} {xxxx,000}, {xxxx,001}이면 인스트럭션을 인출하는 제어신호들을 생성하고, {0011,010} 부터 예를 들어 ADD명령에 대한 동작을 하는 제어신호들을 생성할 수 있다. ADD명령이 인스트럭션 인출을 제외하고 두 사이클 소모된다면 {0011,011}에서 counter_reset에 해당하는 제어신호 비트를 ‘1’로 설정할 수 있다. 위 코드에서는 최하위 비트가 counter_reset 비트일 수 있으며, 각각의 한 비트 들이 각각 요소의 제어 신호일 수 있다. 즉, control_signals은 인스트럭션 인출 신호, 데이터 패스 제어신호 및 카운터 리셋 신호를 포함하는 것일 수 있다. 위 코드에서 예를 들면, 6 비트 중 2개 비트가 인스트럭션 인출 신호, 3개 비트가 데이터 패스 제어신호, 마지막 비트가 counter_reset 신호일 수 있다. 다만, 이는 본 발명의 설명을 위하여 인출되는 인스트럭션이 ADD 명령인 경우를 예를 들어 개략적으로 설명한 것이 불과하며, 이에 의하여 본 발명의 구성이 제한되지 아니함은 당업자에게 자명하다고 할 것이다.When the input value is {instruction, counter} {xxxx, 000}, {xxxx, 001} in the output logic unit 50, control signals for fetching the instruction are generated, It is possible to generate control signals that operate. If the ADD instruction consumes two cycles except for instruction fetch, the control signal bit corresponding to counter_reset in {0011,011} can be set to '1'. In the above code, the least significant bit may be the counter_reset bit, each one of which may be the element's control signal. That is, the control_signals may include an instruction fetch signal, a datapath control signal, and a counter reset signal. In the above code, for example, two of the six bits may be an instruction fetch signal, three bits may be a datapath control signal, and the last bit may be a counter_reset signal. However, it should be apparent to those skilled in the art that the structure of the present invention is not limited to the above embodiments, for example, when the instruction fetched for the description of the present invention is an ADD instruction.

도 7은 본 발명의 일 실시예에 따른 카운터 기반 멀티 사이클 프로세서 제어 장치(1)의 실시예를 개략적으로 도시한 것이다.7 schematically shows an embodiment of a counter based multicycle processor control apparatus 1 according to an embodiment of the present invention.

도 7을 참조하면, 상술한 바와 같이, 연산부(10)는 인크리먼터(10_1)로, 신호선택부(20, 30)는 멀티플렉서(20_1, 30_1)로, 저장부(40)는 레지스터(40_1)로, 출력 로직부(50)는 상술한 디코딩을 수행하기 위한 로직으로 구성되는 출력 로직(50_1)으로 이루어질 수 있다. 이에 대한 설명은 상술한 바와 같으므로, 자세한 설명은 생략하기로 한다.7, the operation unit 10 is connected to the incrementer 10_1, the signal selectors 20 and 30 are connected to the multiplexers 20_1 and 30_1, and the storage unit 40 is connected to the registers 40_1 and 30_1, ), And the output logic section 50 may be composed of the output logic 50_1 configured with logic for performing the above-described decoding. Since the above description is the same as described above, a detailed description will be omitted.

도 8은 본 발명의 일 실시예에 따른 카운터 기반 멀티 사이클 프로세서 제어장치 정지 신호 또는 대기 신호가 입력되지 아니한 경우의 동작을 순서도로 도시한 것이다.FIG. 8 is a flowchart illustrating an operation in a case where a stop signal or a wait signal is not inputted to the counter-based multi-cycle processor controller according to an embodiment of the present invention.

도 8을 참조하면, 제1 카운터 값을 입력받아 인스트럭션을 인출하고(S100), 제2 카운터 신호를 입력받아, 제2 카운터 신호와 인스트럭션을 디코딩하여 제어신호를 생성할 수 있다(S110). 인출된 인스트럭션의 마지막 사이클인지 여부를 판단하고(S120), 인스트럭션의 마지막 사이클인 경우에는 카운터 리셋 신호 생성부(130)는 활성화된 카운터 리셋 신호를 생성한다(S130). 그러나, 마지막 사이클이 아닌 경우에는 활성화되지 아니한 카운터 리셋 신호를 생성하고, 제어신호를 생성하는 단계를 반복한다. 활성화된 카운터 리셋 신호를 입력받으면 카운터 값 선택부(30)는 초기 카운터 값을 출력하고(S140), 초기 카운터 값을 저장부(40)에 저장하여 카운터 기반 멀티 사이클 프로세서 제어 장치는 초기 상태로 돌아가게 된다(S150). 인스트럭션의 마지막 사이클인지 여부에 대한 판단은, 상술한 바와 같이 각각의 사이클마다 지정된 카운터 값을 기초로 하여 판단하는 것일 수 있다. 즉, 출력 로직부(50)는 마지막 사이클에 대응하는 카운터 값을 입력 받은 경우에는 활성화된 카운터 리셋 신호를 생성할 수 있다. 각각의 사이클에 대응하는 카운터 값은 출력 로직부(50)가 지정하여 저장하는 것일 수 있다.Referring to FIG. 8, a first counter value is received, an instruction is fetched (S100), a second counter signal is received, a second counter signal and an instruction are decoded to generate a control signal (S110). In operation S120, the counter reset signal generator 130 generates an active counter reset signal in operation S130, if it is the last cycle of the instruction. However, if not the last cycle, a counter reset signal that is not activated is generated and a control signal is generated. Upon receipt of the activated counter reset signal, the counter value selector 30 outputs the initial counter value (S140), stores the initial counter value in the storage unit 40, and the counter based multicycle processor controller returns to the initial state (S150). The determination as to whether or not the instruction is the last cycle of the instruction may be made based on the counter value specified for each cycle as described above. That is, the output logic unit 50 can generate an activated counter reset signal when the counter value corresponding to the last cycle is input. The counter value corresponding to each cycle may be stored by the output logic section 50.

도 9는 본 발명의 일 실시예에 따른 카운터 기반 멀티 사이클 프로세서 제어 장치에 정지 신호 또는 대기 신호가 입력된 경우의 동작을 순서도로 도시한 것이다.FIG. 9 is a flowchart illustrating an operation when a stop signal or a wait signal is input to the counter-based multi-cycle processor control apparatus according to an embodiment of the present invention.

도 9를 참조하면, 인스트럭션을 인출하고(S100), 제2 카운터 값과 인스트럭션을 디코딩하여 제어신호를 생성하는 단계(S110)는, 정지 신호 또는 대기 신호가 입력되지 아니한 경우와 동일할 수 있다. 정지 신호 또는 대기 신호가 입력된 경우에, 제2 신호선택부(30)는 저장부(40)에 저장되어 있는 현재의 카운터 값을 선택하여 출력하여(S210), 현재의 카운터 값을 유지하게 함으로써 동일한 데이터 패스 제어신호가 생성되도록 할 수 있다(S220). 정지 신호 및 대기 신호가 모두 입력되지 아니한 경우에는 증가된 카운터 값을 디코딩하여 데이터 패스 제어신호를 생성하는 것일 수 있다(S125)Referring to FIG. 9, step S110 of fetching an instruction (S100) and decoding a second counter value and an instruction to generate a control signal (S110) may be the same as when no stop signal or wait signal is input. When a stop signal or a wait signal is input, the second signal selector 30 selects and outputs the current counter value stored in the storage unit 40 (S210), thereby maintaining the current counter value The same data path control signal may be generated (S220). If both the stop signal and the standby signal are not inputted, the increased counter value may be decoded to generate the data path control signal (S125)

도 10은 본 발명의 일 실시예에 따른 카운터 기반 멀티 사이클 프로세서 제어 장치에 포함되는 카운터 값 선택부의 동작을 순서도로 도시한 것이다.10 is a flowchart illustrating an operation of a counter value selection unit included in the counter based multicycle processor control apparatus according to an embodiment of the present invention.

도 10을 참조하면, 연산부(10)에 포함되는 제1 신호선택부(20)는, 증가된 카운터 값과 초기 카운터 값을 입력받을 수 있다(S300). 또한, 제1 신호선택부(20)는 카운터 리셋 신호를 입력받고, 카운터 리셋 신호가 활성화된 리셋 신호인지 활성화되지 아니한 리셋 신호인지 판단한다(S320). 활성화된 리셋 신호인 경우에는 초기 카운터 값을 출력하고(S330), 활성화되지 아니한 리셋 신호인 경우에는 증가된 리셋 신호를 출력할 수 있다(S340).Referring to FIG. 10, the first signal selector 20 included in the calculator 10 can receive the increased counter value and the initial counter value (S300). In addition, the first signal selector 20 receives the counter reset signal and determines whether the counter reset signal is an active reset signal or a non-activated reset signal (S320). In the case of the activated reset signal, the initial counter value is outputted (S330), and if the reset signal is not activated, the increased reset signal may be output (S340).

본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 따라서, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해하여야 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내지며, 이하에 기재된 특허청구범위의 의미 및 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.It will be understood by those skilled in the art that the present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Therefore, it should be understood that the above-described embodiments are illustrative in all aspects and not restrictive. The scope of the present invention is defined by the appended claims rather than the detailed description, and all changes or modifications derived from the meanings of the claims and their equivalents are included in the scope of the present invention. .

1 : 카운터 기반 멀티 사이클 프로세서 제어 장치
100 : 인스트럭션 인출부
110 : 데이터 패스 제어신호 생성부
120 : 카운터 리셋 신호 생성부
130 : 카운터 리셋부
10 : 연산부
20 : 제1 신호선택부
30 : 제2 신호선택부
40 : 저장부
50 : 출력 로직부
1: Counter-based multi-cycle processor control unit
100: Instruction fetch unit
110: Data path control signal generation unit
120: Counter reset signal generation unit
130: counter reset section
10:
20: First signal selector
30: second signal selector
40:
50: output logic section

Claims (15)

제1 카운터 값을 디코딩하여 인스트럭션 인출 신호를 생성하고, 상기 인스트럭션 인출 신호에 따라 인스트럭션 인출(fetch)하는 인스트럭션 인출부;
제2 카운터 값을 생성하고, 상기 제2 카운터 값과 인출된 상기 인스트럭션을 디코딩하여 데이터 패스(path) 제어신호를 생성하는 데이터 패스 제어신호 생성부;
인출된 상기 인스트럭션의 각 사이클 단계에 대응하는 카운터 값에 따라 결정되는, 제1 카운터 리셋 신호 또는 제2 카운터 리셋 신호를 생성하는 카운터 리셋 신호 생성부를 포함하는 카운터 기반 멀티 사이클 프로세서 제어 장치.
An instruction fetch unit that decodes the first counter value to generate an instruction fetch signal and fetches instructions according to the fetch instruction fetch signal;
A data path control signal generator for generating a second counter value and decoding the second counter value and the fetched instruction to generate a data path control signal;
And a counter reset signal generator for generating a first counter reset signal or a second counter reset signal, the counter reset signal being determined according to a counter value corresponding to each cycle of the fetched instruction.
제1항에 있어서,
상기 인스트럭션 인출부는,
상기 제1 카운터 값을 저장하는 저장부; 및
상기 저장부에 저장된 상기 제1 카운터 값을 입력받아 상기 제1 카운터 값을 디코딩하여 상기 인스트럭션 인출 신호를 생성하는 출력(output)로직부를 포함하는 카운터 기반 멀티 사이클 프로세서 제어 장치.
The method according to claim 1,
The instruction fetch unit
A storage unit for storing the first counter value; And
And an output logic unit receiving the first counter value stored in the storage unit and decoding the first counter value to generate the instruction fetch signal.
제2항에 있어서,
상기 저장부는, 레지스터를 포함하는 카운터 기반 멀티 사이클 프로세서 제어 장치.
3. The method of claim 2,
Wherein the storage comprises a register.
제2항에 있어서,
상기 제1 카운터 값은, 초기 카운터 값 또는, 상기 초기 카운터 값 및 상기 초기 카운터 값보다 1 증가된 카운터 값을 포함하되,
상기 초기 카운터 값은, 0인 카운터 기반 멀티 사이클 프로세서 제어 장치.
3. The method of claim 2,
Wherein the first counter value includes an initial counter value or a counter value that is incremented by one from the initial counter value and the initial counter value,
Wherein the initial counter value is zero.
제4항에 있어서,
상기 인스트럭션 인출부는, 상기 초기 카운터 값보다 1 증가된 값을 생성하는 연산부를 더 포함하되,
상기 연산부는, 인크리먼터 또는 가산기를 포함하는 카운터 기반 멀티 사이클 프로세서 제어 장치.
5. The method of claim 4,
Wherein the instruction fetch unit further comprises an operation unit for generating a value that is increased by one from the initial counter value,
Wherein the operation unit includes an incrementor or an adder.
제1항에 있어서,
상기 데이터 패스 제어신호 생성부는,
상기 제2 카운터 값을 저장하는 저장부; 및
상기 저장부에 저장된 상기 제2 카운터 값을 입력받고, 입력받은 상기 제2 카운터 값을 디코딩하여 데이터 패스 제어신호를 생성하는 출력 로직부;
상기 저장부에 저장된 상기 제2 카운터 값을 입력받고, 상기 제2 카운터 값보다 1 증가된 카운터 값을 생성하는 연산부; 및
상기 증가된 카운터 값 및 상기 제2 카운터 값을 입력받고, 입력받은 상기 증가된 카운터 값 또는 상기 제2 카운터 값을 출력하는 제2 신호선택부를 포함하는 카운터 기반 멀티 사이클 프로세서 제어 장치.
The method according to claim 1,
Wherein the data path control signal generator comprises:
A storage unit for storing the second counter value; And
An output logic unit receiving the second counter value stored in the storage unit and decoding the input second counter value to generate a data path control signal;
An arithmetic unit for receiving the second counter value stored in the storage unit and generating a counter value that is incremented by one from the second counter value; And
And a second signal selector for receiving the incremented counter value and the second counter value and outputting the incremented counter value or the second counter value.
제6항에 있어서,
상기 제2 신호선택부는, 상기 제2 신호선택부가 정지신호(HALTb) 또는 대기신호(WAITb)를 입력받은 경우에, 상기 제2 카운터 값을 출력하는 카운터 기반 멀티 사이클 프로세서 제어 장치.
The method according to claim 6,
Wherein the second signal selector outputs the second counter value when the second signal selector receives the stop signal (HALTb) or the wait signal (WAITb).
제6항에 있어서,
상기 저장부는, 레지스터를 포함하고,
상기 연산부는, 인크리먼터 또는 가산기를 포함하고,
상기 제2 신호선택부는, 멀티플렉서를 포함하는 카운터 기반 멀티 사이클 프로세서 제어 장치.
The method according to claim 6,
Wherein the storage unit includes a register,
Wherein the operation unit includes an incrementor or an adder,
Wherein the second signal selector comprises a multiplexer.
제1항에 있어서,
상기 카운터 리셋 신호 생성부는,
저장부에 저장된 카운터 값을 입력받고, 상기 카운터 값보다 1 증가된 카운터 값을 연산하는 연산부;
상기 증가된 카운터 값을 입력받고, 상기 증가된 카운터 값 또는 초기 카운터 값을 출력하는 제1 신호선택부;
상기 제1 신호선택부가 출력한 상기 증가된 카운터 값을 저장하는 저장부; 및
상기 저장부에 저장된 복수의 카운터 값을 입력받고, 입력받은 복수의 카운터 값 각각에 대응하는 상기 제1 카운터 리셋 신호 또는 상기 제2 카운터 리셋 신호를 생성하는 출력 로직부를 포함하는 카운터 기반 멀티 사이클 프로세서 제어 장치.
The method according to claim 1,
Wherein the counter reset signal generator comprises:
An operation unit receiving a counter value stored in the storage unit and calculating a counter value that is increased by one from the counter value;
A first signal selector for receiving the incremented counter value and outputting the incremented counter value or the initial counter value;
A storage unit for storing the incremented counter value outputted by the first signal selector; And
And an output logic unit receiving a plurality of counter values stored in the storage unit and generating the first counter reset signal or the second counter reset signal corresponding to each of the input plurality of counter values, Device.
제9항에 있어서,
상기 복수의 카운터 값은, 상기 제1 카운터 값, 상기 제2 카운터 값 및 상기 제2 카운터 값에 포함되는 제3 카운터 값을 포함하고,
상기 출력 로직부가 상기 제1 카운터 값 및 상기 제2 카운터 값을 입력받은 경우에는, 상기 제1 카운터 리셋 신호를 생성하고,
상기 출력 로직부가 상기 제3 카운터 값을 입력받은 경우에는, 상기 제2 카운터 리셋 신호를 생성하되,
상기 제3 카운터 값은, 상기 제2 카운터 값 중 상기 인스트럭션의 마지막 사이클 단계에 대응하는 카운터 값인 카운터 기반 멀티 사이클 프로세서 제어 장치.
10. The method of claim 9,
Wherein the plurality of counter values include a third counter value included in the first counter value, the second counter value, and the second counter value,
When the output logic unit receives the first counter value and the second counter value, generates the first counter reset signal,
When the output logic unit receives the third counter value, generates the second counter reset signal,
Wherein the third counter value is a counter value corresponding to a last cycle stage of the instruction among the second counter values.
제1항에 있어서,
상기 제1 카운터 리셋 신호 또는 상기 제2 카운터 리셋 신호를 입력받고, 입력받은 상기 제1 카운터 리셋 신호 또는 상기 제2 카운터 리셋 신호에 따라, 초기 카운터 값 또는 증가된 카운터 값을 선택하여 출력하는 카운터 리셋부를 더 포함하는 카운터 기반 멀티 사이클 프로세서 제어 장치.
The method according to claim 1,
A counter reset circuit which receives the first counter reset signal or the second counter reset signal and selects and outputs an initial counter value or an increased counter value in accordance with the received first counter reset signal or the second counter reset signal, Lt; RTI ID = 0.0 > of: < / RTI >
제11항에 있어서,
상기 카운터 리셋부는,
상기 제1 카운터 값 또는 상기 제2 카운터 값을 입력받고, 상기 제1 카운터 값 또는 상기 제2 카운터 값보다 1 증가된 상기 증가된 카운터 값을 생성하는 연산부;
상기 증가된 카운터 값 및 상기 초기 카운터 값과, 상기 제1 카운터 리셋 신호 또는 상기 제2 카운터 리셋 신호를 입력받고, 상기 제1 카운터 리셋 신호를 입력받은 경우에는 상기 증가된 카운터 값을 출력하고, 상기 제2 카운터 리셋 신호를 입력받은 경우에는, 상기 초기 카운터 값을 출력하는 제1 신호선택부; 및
상기 제1 카운터 값, 상기 제2 카운터 값, 상기 증가된 카운터 값 및 상기 초기 카운터 값을 저장하는 저장부를 포함하는 카운터 기반 멀티 사이클 프로세서 제어 장치.
12. The method of claim 11,
Wherein the counter reset unit comprises:
An operation unit that receives the first counter value or the second counter value and generates the incremented counter value that is incremented by one from the first counter value or the second counter value;
The first counter reset signal or the second counter reset signal and outputs the increased counter value when the first counter reset signal is received, A first signal selector for outputting the initial counter value when a second counter reset signal is input; And
And a storage unit for storing the first counter value, the second counter value, the incremented counter value, and the initial counter value.
제12항에 있어서,
상기 연산부는, 인크리먼터 또는 가산기를 포함하고,
상기 제1 신호선택부는, 멀티플렉서를 포함하고,
상기 저장부는, 레지스터를 포함하는 카운터 기반 멀티 사이클 프로세서 제어 장치.
13. The method of claim 12,
Wherein the operation unit includes an incrementor or an adder,
Wherein the first signal selector includes a multiplexer,
Wherein the storage comprises a register.
제1항에 있어서,
상기 제1 카운터 값은, 상기 인스트럭션 인출부가 상기 인스트럭션을 인출하도록 지정된 카운터 값이고,
상기 제2 카운터 값은, 상기 데이터 패스 제어신호 생성부가 상기 데이터 패스 제어신호를 생성하도록 지정된 카운터 값인 카운터 기반 멀티 사이클 프로세서 제어 장치.
The method according to claim 1,
Wherein the first counter value is a counter value designated by the instruction fetch section to fetch the instruction,
Wherein the second counter value is a counter value that the datapath control signal generator is designed to generate the datapath control signal.
제1 카운터 값을 입력받아 디코딩하여 인스트럭션을 인출하고, 인출된 상기 인스트럭션과 제2 카운터 값을 입력받아 디코딩하여 데이터 패스(path) 제어신호를 생성하는 출력 로직부;
상기 제1 카운터 값 또는 제2 카운터 값을 입력받고, 상기 제1 카운터 값 또는 제2 카운터 값보다 1 증가된 카운터 값을 연산하는 인크리먼터;
초기 카운터 값 또는 상기 증가된 카운터 값을 입력받고, 입력된 상기 초기 카운터 값 또는 입력된 상기 증가된 카운터 값 중 어느 하나를 선택하여 출력하는 제1 멀티플렉서;
상기 제1 멀티플렉서가 출력한 상기 초기 카운터 값 또는 상기 증가된 카운터 값 중 어느 하나의 값과, 레지스터에 저장된 현재의 카운터 값 중 어느 하나를 상기 레지스터로 전송하는 제2 멀티플렉서를 포함하되,
상기 제2 멀티플렉서는, 상기 제2 멀티플렉서가 정지 신호 또는 대기 신호를 입력받은 경우에 상기 레지스터가 출력하여 카운터 값을 상기 레지스터로 전송하는 카운터 기반 멀티 사이클 프로세서 제어 장치.
An output logic unit for receiving and decoding a first counter value to fetch an instruction, receiving and decoding the fetched instruction and a second counter value, and generating a data path control signal;
An incrementer that receives the first counter value or the second counter value and calculates a counter value that is incremented by one from the first counter value or the second counter value;
A first multiplexer receiving the initial counter value or the incremented counter value and selecting one of the input initial count value and the incremented counter value;
And a second multiplexer for transmitting any one of the initial counter value or the incremented counter value output from the first multiplexer and the current counter value stored in the register to the register,
And the second multiplexer outputs the counter and transmits the counter value to the register when the second multiplexer receives the stop signal or the wait signal.
KR20130060447A 2013-05-28 2013-05-28 Counter-based multi-cycle processor control unit KR101484600B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20130060447A KR101484600B1 (en) 2013-05-28 2013-05-28 Counter-based multi-cycle processor control unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130060447A KR101484600B1 (en) 2013-05-28 2013-05-28 Counter-based multi-cycle processor control unit

Publications (2)

Publication Number Publication Date
KR20140139835A KR20140139835A (en) 2014-12-08
KR101484600B1 true KR101484600B1 (en) 2015-01-22

Family

ID=52457958

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130060447A KR101484600B1 (en) 2013-05-28 2013-05-28 Counter-based multi-cycle processor control unit

Country Status (1)

Country Link
KR (1) KR101484600B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100866428B1 (en) 2002-05-09 2008-10-31 인텔 코오퍼레이션 A graphic memory controller hub and a control circuit thereof, an integrated device and a computing device
KR20110050725A (en) * 2008-11-24 2011-05-16 인텔 코포레이션 Systems, methods, and apparatuses to decompose a sequential program into multiple threads, execute said threads, and reconstruct the sequential execution
KR20110128949A (en) * 2009-03-20 2011-11-30 콸콤 인코포레이티드 Memory access controller, systems, and methods for optimizing memory access times
KR20120030332A (en) * 2009-05-27 2012-03-28 마이크로칩 테크놀로지 인코포레이티드 Dsp engine with implicit mixed operands

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100866428B1 (en) 2002-05-09 2008-10-31 인텔 코오퍼레이션 A graphic memory controller hub and a control circuit thereof, an integrated device and a computing device
KR20110050725A (en) * 2008-11-24 2011-05-16 인텔 코포레이션 Systems, methods, and apparatuses to decompose a sequential program into multiple threads, execute said threads, and reconstruct the sequential execution
KR20110128949A (en) * 2009-03-20 2011-11-30 콸콤 인코포레이티드 Memory access controller, systems, and methods for optimizing memory access times
KR20120030332A (en) * 2009-05-27 2012-03-28 마이크로칩 테크놀로지 인코포레이티드 Dsp engine with implicit mixed operands

Also Published As

Publication number Publication date
KR20140139835A (en) 2014-12-08

Similar Documents

Publication Publication Date Title
US10061590B2 (en) Generating and executing a control flow
KR101660659B1 (en) Executing subroutines in a multi-threaded processing system
US9342478B2 (en) Processor with reconfigurable architecture including a token network simulating processing of processing elements
CN104272248B (en) The Predicate evaluation method and apparatus that processor instruction is concentrated
US8429380B2 (en) Disabling redundant subfunctional units receiving same input value and outputting same output value for the disabled units in SIMD processor
CN112230992B (en) Instruction processing device, processor and processing method thereof comprising branch prediction loop
US7971040B2 (en) Method and device for saving and restoring a set of registers of a microprocessor in an interruptible manner
JP2010044578A (en) Multicore processor
JP2015531124A (en) Selectively activating a resume check operation in a multi-threaded processing system
US20220318186A1 (en) Conditional operations in a vector processor having true and false vector index registers
US8484520B2 (en) Processor capable of determining ECC errors
JP5926655B2 (en) Central processing unit and arithmetic unit
US10877925B2 (en) Vector processor with vector first and multiple lane configuration
US8656143B2 (en) Variable clocked heterogeneous serial array processor
JP2010117806A (en) Semiconductor device and data processing method by semiconductor device
KR101484600B1 (en) Counter-based multi-cycle processor control unit
JP6378515B2 (en) VLIW processor
JP2006072961A (en) Memory circuit for arithmetic processing unit
JP2013161484A (en) Reconfigurable computing apparatus, first memory controller and second memory controller therefor, and method of processing trace data for debugging therefor
JP2006018411A (en) Processor
JP2006293741A (en) Processor
JP2014164659A (en) Processor
US20060271610A1 (en) Digital signal processor having reconfigurable data paths
JP5701930B2 (en) Semiconductor device
US9164770B2 (en) Automatic control of multiple arithmetic/logic SIMD units

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190103

Year of fee payment: 5