KR20000038010A - Micro processor of multithread structure - Google Patents

Micro processor of multithread structure Download PDF

Info

Publication number
KR20000038010A
KR20000038010A KR1019980052857A KR19980052857A KR20000038010A KR 20000038010 A KR20000038010 A KR 20000038010A KR 1019980052857 A KR1019980052857 A KR 1019980052857A KR 19980052857 A KR19980052857 A KR 19980052857A KR 20000038010 A KR20000038010 A KR 20000038010A
Authority
KR
South Korea
Prior art keywords
thread
microprocessor
values
mapped
control circuit
Prior art date
Application number
KR1019980052857A
Other languages
Korean (ko)
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 KR1019980052857A priority Critical patent/KR20000038010A/en
Publication of KR20000038010A publication Critical patent/KR20000038010A/en

Links

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
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Abstract

PURPOSE: A micro processor of a multithread structure is provided to reduce a thread exchanging time. CONSTITUTION: A micro processor of a multithread structure comprises a thread table(32), and a register renaming pool(34). The thread table(32) stores many commands having each thread identity(ID), mapping as specific values, and outputs a responded value among the mapped values, responding to the thread ID of the inputted command. The register renaming pool(34) has information responded to the mapped values respectively, and responds to the output value, to use for settling dependency among the inputted commands.

Description

스레드 교환시간을 감소시키는 스레드 제어회로 및 이를 구비하는 멀티스레드 구조의 마이크로 프로세서Thread control circuit for reducing thread exchange time and multi-threaded microprocessor having the same

본 발명은 마이크로 프로세서(Microprocessor)에 관한 것으로, 특히 스레드(Thread) 제어회로 및 이를 구비하는 멀티스레드(Multithread) 구조의 마이크로 프로세서에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a microprocessor, and more particularly to a microprocessor of a multithread structure having a thread control circuit and the same.

마이크로 프로세서에 있어서 명령어 병렬수행도(클럭당 동시에 수행되는 명령어의 개수) 또는 명령어 수행효율을 증가시키기 위한 방법의 일환으로 멀티스레드 구조가 제안되었다. 멀티스레드 구조를 갖는 마이크로 프로세서에서는, 여러개의 스레드가 동시에 엑티브한 상태로 마이크로 프로세서 내의 캐쉬(Cache)에 존재하며, 각 스레드의 명령어가 동시에 수행되거나 또는 수행중인 스레드가 캐쉬 미스(Miss)등으로 인하여 정지(Idle) 상태에 놓이게 될 때 스레드 교환(Swap)에 의해 다른 엑티브 스레드의 명령어가 수행됨으로써 명령어 수행효율이 증가된다.In the microprocessor, a multi-threaded architecture has been proposed as part of a method for increasing instruction parallelism (number of instructions executed simultaneously per clock) or instruction execution efficiency. In a microprocessor with a multithreaded structure, several threads are active in a cache in the microprocessor at the same time, and an instruction of each thread is executed at the same time or a thread is running due to a cache miss. When placed in the idle state, the instruction execution of another active thread is executed by thread swap, thereby increasing the instruction execution efficiency.

따라서 멀티스레드 구조를 갖는 마이크로 프로세서에서 명령어 수행효율을 높이기 위해서는 스레드 교환에 소요되는 시간, 즉 스레드 교환시간을 줄이는 것이 매우 중요하다.Therefore, in order to increase the instruction execution efficiency in a multi-threaded microprocessor, it is very important to reduce the time required for thread exchange, that is, the thread exchange time.

따라서 본 발명이 이루고자하는 기술적 과제는, 멀티스레드 구조를 갖는 마이크로 프로세서에서 스레드 교환시간을 감소시키는 스레드 제어회로를 제공하는 데 있다.Accordingly, an aspect of the present invention is to provide a thread control circuit for reducing thread exchange time in a microprocessor having a multithreaded structure.

본 발명이 이루고자하는 다른 기술적 과제는, 스레드 교환시간이 감소되는 멀티스레드 구조를 갖는 마이크로 프로세서를 제공하는 데 있다.Another object of the present invention is to provide a microprocessor having a multithreaded structure in which thread exchange time is reduced.

도 1은 여러 가지 형태의 멀티스레드 구조중 파인 그레인드(Fine-grained) 멀티스레드 구조를 갖는 마이크로 프로세서의 블락도1 is a block diagram of a microprocessor having a fine-grained multithreaded structure among various types of multithreaded structures.

도 2는 도 1에 도시된 멀티스레드 구조를 갖는 마이크로 프로세서에서 명령어 페치 파이프라인을 보여주는 도면FIG. 2 shows an instruction fetch pipeline in a microprocessor with the multithreaded structure shown in FIG.

도 3은 도 1에 도시된 바와 같은 멀티스레드 구조를 갖는 마이크로 프로세서에서의 본 발명에 따른 스레드 제어회로의 블락도3 is a block diagram of a thread control circuit according to the present invention in a microprocessor having a multithreaded structure as shown in FIG.

도 4는 도 3에 도시된 스레드 제어회로의 스레드 테이블과 레지스터 리내이밍 풀의 동작예를 나타내는 도면FIG. 4 is a diagram showing an example of operation of a thread table and a register renaming pool of the thread control circuit shown in FIG.

상기 기술적 과제를 달성하기 위한 본 발명에 따른 스레드 제어회로는 스레드 테이블과 레지스터 리내이밍 풀을 구비하는 것을 특징으로 한다.Thread control circuit according to the present invention for achieving the above technical problem is characterized by having a thread table and a register renaming pool.

상기 스레드 테이블에는 각각의 스레드 ID(Identity)를 갖는 다수개의 명령들이 소정의 값들로 매핑되어 저장되어 있고, 상기 스레드 테이블은 입력되는 명령의 스레드 ID에 응답하여 상기 매핑된 값들중 대응되는 값을 출력한다. 상기 레지스터 리내이밍 풀은, 상기 매핑된 값들에 각각 대응되는 정보를 갖고, 상기 스레드 테이블로부터 출력되는 값에 응답하여 상기 명령들 사이의 디펜던시를 해결하기 위해 사용된다.In the thread table, a plurality of commands having respective thread IDs are mapped and stored as predetermined values, and the thread table outputs corresponding values among the mapped values in response to a thread ID of an input command. do. The register renaming pool has information corresponding to the mapped values, respectively, and is used to solve the dependency between the instructions in response to a value output from the thread table.

상기 소정의 값들은 10 미만의 숫자이며, 상기 스레드 테이블은 CAM(Content Addressed Memory) 로직으로 이루어진다.The predetermined values are numbers less than 10, and the thread table consists of Content Addressed Memory (CAM) logic.

상기 다른 기술적 과제를 달성하기 위한 본 발명에 따른 멀티스레드 구조를 갖는 마이크로 프로세서는, 상기 스레드 제어회로의 스레드 테이블과 레지스터 리내이밍 풀을 구비하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a microprocessor having a multithreaded structure including a thread table and a register renaming pool of the thread control circuit.

따라서 상기 스레드 제어회로는 다수개의 스레드 ID들을 상기 스레드 테이블을 이용하여 10 미만의 숫자로 리매핑시킴으로써 스레드 교환 시간을 감소시킨다. 이에 따라 상기 스레드 제어회로를 구비하는 멀티스레드 구조의 마이크로 프로세서에서는, 명령어 수행효율이 높아지는 장점이 있다.Accordingly, the thread control circuit reduces thread exchange time by remapping a plurality of thread IDs to a number less than 10 using the thread table. Accordingly, in the multi-threaded microprocessor having the thread control circuit, the instruction execution efficiency is increased.

이하 본 발명에 따른 스레드 제어회로 및 이를 구비하는 멀티스레드 구조의 마이크로 프로세서를 첨부도면을 참조하여 상세히 설명하겠다.Hereinafter, a thread control circuit and a multithreaded microprocessor having the same will be described in detail with reference to the accompanying drawings.

도 1은 여러 가지 형태의 멀티스레드 구조중 파인 그레인드(Fine-grained) 멀티스레드 구조를 갖는 마이크로 프로세서의 블락도이다.1 is a block diagram of a microprocessor having a fine-grained multithreaded structure among various types of multithreaded structures.

도 1을 참조하면, 상기 파인 그레인드 멀티스레드 구조를 갖는 마이크로 프로세서는, 넌블락킹 명령캐쉬(Nonblocking instruction cash)(101), 2개의 명령 페치부(Instruction fetch unit)(102,103), 2개의 브랜치 로직(Branch logic)(104,105), 멀티플렉서(Multiplexer)(106), 스레드 제어기(Thread controller)(107), 와이드 디코더(Wide decoder)(108), 실행부(Execution unit)(109), 2개의 명령 완결부(Instruction completion unit)(110,111), 리내임 레지스터들(Rename registers)(112), 2개의 레지스터 파일(113,114), 넌블락킹 데이터 캐쉬(Nonblocking data cash)(115)를 포함한다.Referring to FIG. 1, a microprocessor having a fine grained multithreaded structure may include a nonblocking instruction cash 101, two instruction fetch units 102 and 103, and two branches. Branch logic (104, 105), multiplexer (106), thread controller (107), wide decoder (108), execution unit (109), two instructions An instruction completion unit (110, 111), Rename registers (112), two register files (113, 114), and nonblocking data cash (Nonblocking data cash) (115).

상기 파인 그레인드 멀티스레드 구조를 갖는 마이크로 프로세서에서는, 2개의 엑티브 스레드로부터 반복적으로 명령어가 페치되어 상기 실행부(109)에서 실행된다. 또한 상기와 같은 구조에서는, 한 스레드에서 발생될 수 있는 디펜던시(Dependency) 또는 캐쉬 미스등에 의한 파이프라인 버블(Pipeline bubble), 즉 명령어가 수행되지 않는 싸이클이 다른 스레드로부터 페치되는 명령어를 이용하여 제거될 수 있다.In the microprocessor having the fine grained multithreaded structure, instructions are repeatedly fetched from two active threads and executed in the execution unit 109. Also, in the above structure, a pipeline bubble caused by a dependency or a cache miss that may occur in one thread, that is, a cycle in which an instruction is not executed is fetched from another thread. Can be removed.

도 2는 도 1에 도시된 멀티스레드 구조를 갖는 마이크로 프로세서에서 명령어 페치 파이프라인을 보여주는 도면으로서, 명령어 페치시 제1스레드의 명령(21,25)와 제2스레드의 명령(23,27)이 교대로 나오게 된다(Issued).FIG. 2 is a diagram illustrating an instruction fetch pipeline in the microprocessor having the multithreaded structure illustrated in FIG. 1, wherein when instructions are fetched, the instructions 21 and 25 of the first thread and the instructions 23 and 27 of the second thread are shown. Issued alternately.

그런데 상술한 멀티스레드 구조를 갖는 마이크로 프로세서에서는, 각 스레드의 명령어가 동시에 수행되거나 또는 수행중인 스레드, 예컨데 상기 제1스레드의 명령(21,25)가 캐쉬 미스(Miss)등으로 인하여 정지(Idle) 상태에 놓이게 될 때 스레드 교환(Swap)에 의해 다른 엑티브 스레드의 명령어로 변경되어 수행되어야 한다. 따라서 상기 멀티스레드 구조를 갖는 마이크로 프로세서에서는 명령어 수행효율을 높이기 위해서 스레드 교환에 소요되는 시간을 줄이는 것이 매우 중요하다.However, in the microprocessor having the multi-threaded structure described above, the instructions of each thread are executed simultaneously or are being executed, for example, the instructions 21 and 25 of the first thread are idle due to a cache miss or the like. When placed in the state, it must be executed by changing the instruction of another active thread by thread swap. Therefore, in the microprocessor having the multithreaded structure, it is very important to reduce the time required for thread exchange to increase the instruction execution efficiency.

한편 스레드를 지원하는 OS(Operating System) 환경에서는, 수행을 위한 목적으로 주 메모리(Main Memory) 또는 하드디스크 상에 수백개 이상의 스레드가 존재한다. 이들 스레드들은 OS에 의해 제공되는 ID(Identity )로서 다른 스레드와 구별되고, 기존의 프로세스 개념과는 달리 스레드들이 메모리 공간(Space)를 공유하고 구조상태, 예컨데 마이크로 프로세서 내의 레지스터 파일(Register File) 상태 또는 스택 포인터(Stack Pointer) 상태들 만을 독립적으로 갖는다.On the other hand, in an operating system (OS) environment that supports threads, there are hundreds of threads on the main memory or the hard disk for the purpose of execution. These threads are distinguished from other threads by the identity provided by the OS, and unlike conventional process concepts, the threads share a memory space and have a structure state, such as a register file state in a microprocessor. Or independently have only Stack Pointer states.

그리고 상기 멀티스레드 구조를 갖는 마이크로 프로세서에서 스레드 교환시에는 정지상태로 변한 스레드를 선택적으로 제거하게 되는 데, 이를 위해 상술한 OS에서 제공된 스레드 ID가 사용될 수 있다. 그러나 OS에서 제공된 스레드 ID의 범위는 1000이상으로 너무 크기 때문에, OS에서 제공된 스레드 ID를 사용할 경우에는 스레드 교환에 사용되는 하드웨어가 복잡해지며 스레드 교환 시간이 증가하는 단점이 있다. 일반적으로 마이크로 프로세서에서 엑티브한 스레드의 수는 10 미만이다.In the microprocessor having the multi-threaded structure, when the thread is exchanged, the thread that is changed to the idle state is selectively removed. For this, the thread ID provided by the OS may be used. However, since the range of thread IDs provided by the OS is over 1000, the hardware used for thread exchange becomes complicated and the thread exchange time increases when using the thread ID provided by the OS. Typically, the number of active threads in a microprocessor is less than ten.

따라서 본 발명에서는 OS에서 제공된 스레드 ID를 스레드 테이블을 이용하여 10 미만의 숫자로 리매핑(Remapping)시킴으로써 스레드 교환 시간을 감소시키고자 한다.Therefore, in the present invention, the thread exchange time is reduced by remapping the thread ID provided by the OS to a number less than 10 using the thread table.

도 3은 상기와 같은 멀티스레드 구조를 갖는 마이크로 프로세서에서의 본 발명에 따른 스레드 제어회로의 블락도이다.3 is a block diagram of a thread control circuit according to the present invention in a microprocessor having such a multithreaded structure.

도 3을 참조하면, 본 발명에 따른 스레드 제어회로는 스레드 테이블(32), 레지스터 리내이밍 로직(Register Renaming Logic)(33), 및 레지스터 리내이밍 풀(Register Renaming Pool)(34)를 포함하여 구성된다.Referring to FIG. 3, the thread control circuit according to the present invention includes a thread table 32, a register renaming logic 33, and a register renaming pool 34. do.

상기 스레드 테이블(32)에는 각각의 스레드 ID(32a1 내지 32an)을 갖는 다수개의 명령들이 소정의 10 미만의 숫자들, 즉 N-스레드 ID들(32b1 내지 32bn)로 매핑되어 저장되어 있고, 상기 스레드 테이블(32)는 명령버퍼로부터 입력되는 명령(31)의 스레드 ID(SID)에 응답하여 대응되는 N-스레드 ID를 출력한다. 상기 스레드 테이블(32)는 CAM(Content Addressed Memory) 로직으로 이루어진다.In the thread table 32, a plurality of instructions having respective thread IDs 32a1 to 32an are mapped to and stored as numbers less than 10, that is, N-thread IDs 32b1 to 32bn. The table 32 outputs the corresponding N-thread ID in response to the thread ID (SID) of the command 31 input from the command buffer. The thread table 32 consists of Content Addressed Memory (CAM) logic.

상기 레지스터 리내이밍 로직(33)은 상기 명령(31)의 데스티네이션/소오스 레지스터 필드를 입력으로 하여 상기 레지스터 리내이밍 풀(34)를 제어한다.The register renaming logic 33 controls the register renaming pool 34 by inputting the destination / source register field of the command 31.

상기 레지스터 리내이밍 풀(34)는 상기 매핑된 N-스레드 ID들(32b1 내지 32bn)에 각각 대응되는 정보를 갖고 있고, 상기 스레드 테이블(32)로부터 출력되는 N-스레드 ID에 응답하여 상기 명령들 사이의 디펜던시(Dependency)를 해결하기 위해 사용된다. 또한 상기 레지스터 리내이밍 풀(34)는 엑티브 스레드들에 의해 공유되어 사용되고, 따라서 여러 가지 스레드의 명령어가 상기 레지스터 리내이밍 풀(34)에 존재할 수 있다. 상기 레지스터 리내이밍 풀(34)는, 새로운 스레드 ID 필드들(34a1 내지 34an), 밸리드(Valid) 필드들(34b1 내지 34bn), 레지스터 번호들(34c1 내지 34cn), 및 리내임 레지스터 번호들(34d1 내지 34dn)로 구성된다.The register renaming pool 34 has information corresponding to the mapped N-thread IDs 32b1 to 32bn, respectively, and the instructions in response to the N-thread ID output from the thread table 32. Used to resolve dependencies between. The register renaming pool 34 is also shared and used by active threads, so that instructions of various threads may exist in the register renaming pool 34. The register renaming pool 34 includes new thread ID fields 34a1 to 34an, valid fields 34b1 to 34bn, register numbers 34c1 to 34cn, and retainer register numbers ( 34d1 to 34dn).

도 4는 도 3에 도시된 스레드 제어회로의 스레드 테이블과 레지스터 리내이밍 풀의 동작예를 나타내는 도면이다.FIG. 4 is a diagram showing an example of operations of a thread table and a register renaming pool of the thread control circuit shown in FIG.

도 4를 참조하면, 스레드 테이블(42)에 스레드 ID=200(42a)인 명령이 N-스레드 ID=1(42b)로 매핑되어 저장되어 있을 때, 명령버퍼로부터 입력되는 명령(41)의 스레드 ID(SID)가 200일 경우에는 상기 스레드 테이블(42)로부터 N-스레드 ID=1이 출력된다. 다음에 상기 스레드 ID가 200인 명령(41)이 레지스터 리내이밍 풀(44)에 등록될 때 새로운 스레드 ID 필드(44a)의 제2비트가 논리"1"로 셋트되고 나머지 비트들이 논리"0"으로 리셋된다.Referring to FIG. 4, when an instruction having a thread ID = 200 (42a) is mapped and stored as an N-thread ID = 1 (42b) in the thread table 42, a thread of the instruction 41 inputted from the command buffer is stored. When ID SID is 200, N-thread ID = 1 is output from the thread table 42. The next time the instruction 41 with the thread ID 200 is registered in the register renaming pool 44, the second bit of the new thread ID field 44a is set to logical " 1 " and the remaining bits are logical " 0 ". Is reset.

상기 스레드 제어회로에서는, 만약 상기 스레드 ID가 200인 명령이 정지(Idle) 상태가 되어 교환(Swapping)될 때, 상기 레지스터 리내이밍 풀에서 상기 새로운 스레드 ID 필드(44a)의 제2비트가 논리"1"로 셋트된 엔트리(entry)를 무효로 함으로써(Invalidate), 즉 밸리드 필드(44b)를 리셋시킴으로써 플러쉬(Flush)시킬수 있다.In the thread control circuit, if the instruction with the thread ID 200 is in the idle state and swapped, the second bit of the new thread ID field 44a in the register renaming pool is logical. " It can be flushed by invalidating the entry set to 1 ", that is, by resetting the valid field 44b.

따라서 상기 본 발명에 따른 스레드 제어회로는, 다수의 스레드 ID들을 스레드 테이블을 이용하여 10 미만의 숫자로 리매핑(Remapping)시킴으로써 스레드 교환 시간을 감소시킨다. 이에 따라 상기 스레드 제어회로를 구비하는 멀티스레드 구조의 마이크로 프로세서에서는, 스레드 교환시간이 감소됨으로써 명령어 수행효율이 높아지게 된다.Accordingly, the thread control circuit according to the present invention reduces the thread exchange time by remapping a plurality of thread IDs to a number less than 10 using a thread table. Accordingly, in the multi-threaded microprocessor having the thread control circuit, the thread exchange time is reduced, thereby increasing instruction execution efficiency.

이상과 같이, 본 발명을 일실시예를 들어 한정적으로 설명하였으나 이에 한정되지 않으며 본 발명의 사상의 범위 내에서 당해 분야의 통상의 지식을 가진 자에 의해 본원 발명에 대한 각종 변형이 가능함은 자명하다.As described above, the present invention has been limited to one embodiment, but not limited thereto. It is obvious that various modifications to the present invention can be made by those skilled in the art within the scope of the spirit of the present invention. .

상술하였듯이 본 발명에 따른 스레드 제어회로는 스레드 교환 시간을 감소시키며, 이에 따라 상기 스레드 제어회로를 구비하는 본 발명에 따른 멀티스레드 구조의 마이크로 프로세서에서는 스레드 교환시간이 감소됨으로써 명령어 수행효율이 높아지는 장점이 있다.As described above, the thread control circuit according to the present invention reduces the thread exchange time. Accordingly, in the multi-threaded microprocessor having the thread control circuit according to the present invention, the thread exchange time is reduced, thereby increasing the instruction execution efficiency. have.

Claims (6)

멀티스레드 구조를 갖는 마이크로 프로세서의 스레드 제어회로에 있어서,In the thread control circuit of a microprocessor having a multi-threaded structure, 각각의 스레드 ID(Identity)를 갖는 다수개의 명령들이 소정의 값들로 매핑되어 저장되어 있고, 입력되는 명령의 스레드 ID에 응답하여 상기 매핑된 값들중 대응되는 값을 출력하는 스레드 테이블;A thread table in which a plurality of commands having respective thread IDs are mapped and stored as predetermined values, and outputting corresponding values among the mapped values in response to a thread ID of an input command; 상기 매핑된 값들에 각각 대응되는 정보를 갖고, 상기 스레드 테이블로부터 출력되는 값에 응답하여 상기 명령들 사이의 디펜던시를 해결하기 위해 사용되는 레지스터 리내이밍 풀을 구비하는 것을 특징으로 하는 스레드 제어회로.And a register renaming pool having information corresponding to each of the mapped values, and used to resolve dependencies between the instructions in response to a value output from the thread table. . 제1항에 있어서, 상기 소정의 값들은 10 미만의 숫자인 것을 특징으로 하는 스레드 제어회로.The thread control circuit of claim 1, wherein the predetermined values are numbers less than ten. 제1항에 있어서, 상기 스레드 테이블은 CAM(Content Addressed Memory) 로직으로 이루어지는 것을 특징으로 하는 스레드 제어회로.The thread control circuit of claim 1, wherein the thread table comprises content addressed memory (CAM) logic. 각각의 스레드 ID를 갖는 다수개의 명령들이 소정의 값들로 매핑되어 저장되어 있고, 입력되는 명령의 스레드 ID에 응답하여 상기 매핑된 값들중 대응되는 값을 출력하는 스레드 테이블;A thread table in which a plurality of commands having respective thread IDs are mapped and stored with predetermined values, and outputting corresponding values among the mapped values in response to a thread ID of an input command; 상기 매핑된 값들에 각각 대응되는 정보를 갖고, 상기 스레드 테이블로부터 출력되는 값에 응답하여 상기 명령들 사이의 디펜던시를 해결하기 위해 사용되는 레지스터 리내이밍 풀을 구비하는 것을 특징으로 하는 멀티스레드 구조를 갖는 마이크로 프로세서.And a register renaming pool having information corresponding to each of the mapped values and used for resolving dependencies between the instructions in response to a value output from the thread table. Microprocessor having. 제4항에 있어서, 상기 소정의 값들은 10 미만의 숫자인 것을 특징으로 하는 멀티스레드 구조를 갖는 마이크로 프로세서.5. The microprocessor of claim 4, wherein the predetermined values are numbers less than ten. 제4항에 있어서, 상기 스레드 테이블은 CAM 로직으로 이루어지는 것을 특징으로 하는 멀티스레드 구조를 갖는 마이크로 프로세서.5. The microprocessor of claim 4, wherein the thread table consists of CAM logic.
KR1019980052857A 1998-12-03 1998-12-03 Micro processor of multithread structure KR20000038010A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980052857A KR20000038010A (en) 1998-12-03 1998-12-03 Micro processor of multithread structure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980052857A KR20000038010A (en) 1998-12-03 1998-12-03 Micro processor of multithread structure

Publications (1)

Publication Number Publication Date
KR20000038010A true KR20000038010A (en) 2000-07-05

Family

ID=19561218

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980052857A KR20000038010A (en) 1998-12-03 1998-12-03 Micro processor of multithread structure

Country Status (1)

Country Link
KR (1) KR20000038010A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806498B2 (en) 2010-08-18 2014-08-12 Samsung Electronics Co., Ltd. Method and system for resolving dependency among the enqueued works and/or finished works and scheduling the dependency-resolved works

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806498B2 (en) 2010-08-18 2014-08-12 Samsung Electronics Co., Ltd. Method and system for resolving dependency among the enqueued works and/or finished works and scheduling the dependency-resolved works

Similar Documents

Publication Publication Date Title
US10585670B2 (en) Cache storing data fetched by address calculating load instruction with label used as associated name for consuming instruction to refer
US9921845B2 (en) Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines
US6081884A (en) Embedding two different instruction sets within a single long instruction word using predecode bits
JP4578042B2 (en) Fast multithreading for closely coupled multiprocessors.
US6651163B1 (en) Exception handling with reduced overhead in a multithreaded multiprocessing system
KR100578437B1 (en) Mechanism for interrupt handling in computer systems that support concurrent execution of multiple threads
US6330661B1 (en) Reducing inherited logical to physical register mapping information between tasks in multithread system using register group identifier
CN108376097B (en) Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines
US7284092B2 (en) Digital data processing apparatus having multi-level register file
US7493474B1 (en) Methods and apparatus for transforming, loading, and executing super-set instructions
JP3919764B2 (en) How to use dispatch flush on concurrent multithreaded processors to eliminate exception conditions
CN100357884C (en) Method, processor and system for processing instructions
US5974525A (en) System for allowing multiple instructions to use the same logical registers by remapping them to separate physical segment registers when the first is being utilized
KR20040014673A (en) Branch prediction with two levels of branch prediction cache
JP2004326738A (en) Simultaneous multi-thread processor
JPH04232532A (en) Digital computer system
US11132199B1 (en) Processor having latency shifter and controlling method using the same
US11263013B2 (en) Processor having read shifter and controlling method using the same
CN100362474C (en) Time-multiplexed speculative multi-threading to support single-threaded applications
US20040226011A1 (en) Multi-threaded microprocessor with queue flushing
KR100263013B1 (en) Management of both renamed and architectured registers in a superscalar computer system
KR20000038010A (en) Micro processor of multithread structure
US6119220A (en) Method of and apparatus for supplying multiple instruction strings whose addresses are discontinued by branch instructions
JP3341662B2 (en) Information processing device and multi-port register file
JPH06332700A (en) Information processor

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application