KR101700405B1 - 레지스터, 프로세서 및 프로세서 제어 방법 - Google Patents
레지스터, 프로세서 및 프로세서 제어 방법 Download PDFInfo
- Publication number
- KR101700405B1 KR101700405B1 KR1020100025352A KR20100025352A KR101700405B1 KR 101700405 B1 KR101700405 B1 KR 101700405B1 KR 1020100025352 A KR1020100025352 A KR 1020100025352A KR 20100025352 A KR20100025352 A KR 20100025352A KR 101700405 B1 KR101700405 B1 KR 101700405B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- type
- data type
- field
- bit
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
데이터 타입 필드를 포함하는 레지스터를 이용함으로써, 데이터를 효율적으로 연산할 수 있는 프로세서 및 프로세서 제어 방법이 개시된다. 레지스터는 데이터 타입 필드 및 데이터 필드를 포함하고, 프로세서는 데이터 타입 비트를 생성하고, 생성된 데이터 타입 비트를 데이터 타입 필드에 저장한다.
Description
데이터를 저장하거나 연산된 결과를 저장할 수 있는 레지스터 및 레지스터에 저장된 데이터를 이용하여 동작을 실행하는 기술과 관련된다.
프로세서는 프로그램을 실행하기 위한 명령어를 처리할 수 있는 장치이다. 프로세서는 CPU(Central Processing Unit)라고도 한다. 프로세서는 명령의 취득(fetch), 명령의 해독, 명령의 실행, 실행 결과의 확정(commit), 결과 쓰기 등의 과정을 통해 명령어를 처리한다.
프로세서는 제어장치, 연산 장치 및 레지스터를 포함한다. 제어장치는 프로그램의 명령어를 해석하고, 해석된 명령의 의미에 따라 연산 장치, 레지스터, 입출력 장치 등의 동작을 제어한다. 연산 장치는 덧셈, 뺄셈 등과 같은 산술 연산(arithmetic operation) 및 AND, OR 등과 같은 논리 연산(logical operation)을 수행할 수 있다. 레지스터는 명령어나 데이터를 저장하거나 연산된 결과를 저장할 수 있다. 레지스터는 프로세서의 종류에 따라 개수와 크기가 달라질 수 있다.
최근에는, 이미지 데이터와 같은 대용량 데이터를 처리하는 경우가 많아짐에 따라, 프로세서가 많은 양의 데이터를 짧은 시간 내에 처리할 수 있는 방법에 대한 연구가 활발히 진행되고 있다.
데이터 타입 필드를 포함하는 레지스터를 이용함으로써, 데이터를 효율적으로 연산할 수 있는 프로세서 및 프로세서 제어 방법이 개시된다.
본 발명의 일 실시예에 따른 프로세서는 데이터 타입 필드 및 데이터 필드를 포함하는 레지스터 및 데이터의 크기 또는 사인(sign)/언사인(unsign)과 관련된 데이터 타입을 나타내는 데이터 타입 비트를 생성하고, 생성된 데이터 타입 비트를 데이터 타입 필드에 저장하는 제어부를 포함한다.
여기서, 제어부는 제 1 데이터 타입을 갖는 데이터와 제 2 데이터 타입을 갖는 데이터가 연산되어 1개의 데이터로 출력되는 경우, 제 1 데이터 타입과 제 2 데이터 타입 중 어느 하나를 출력된 데이터의 데이터 타입으로 결정할 수 있다.
여기서, 제어부는 설정된 데이터 타입을 갖는 명령어에 기초하여 데이터 타입 비트를 생성할 수 있다. 명령어는 설정된 데이터 타입을 갖는 데이터를 읽어 데이터 필드에 저장하는 명령어 및 저장된 데이터를 설정된 데이터 타입으로 변경하는 명령어 중 적어도 하나를 포함할 수 있다.
본 발명의 일 실시예에 따른 레지스터는 데이터를 저장할 수 있는 데이터 필드 및 데이터의 크기 또는 사인(sign)/언사인(unsign)과 관련된 데이터의 타입을 나타내는 데이터 타입 비트를 저장할 수 있는 데이터 타입 필드를 포함한다.
여기서, 데이터 타입 비트는 데이터의 크기를 표시하는 데이터 크기 비트 및 사인/언사인을 표시하는 사인/언사인 비트 중 적어도 어느 하나를 포함할 수 있다.
본 발명의 일 실시예에 따른 프로세서의 제어 방법은 데이터의 크기 또는 사인(sign)/언사인(unsign)과 관련된 데이터의 타입을 나타내는 데이터 타입 비트를 생성하는 단계 및 생성된 데이터 타입 비트를 레지스터의 데이터 타입 필드에 저장하는 단계를 포함한다.
여기서, 데이터 타입 비트를 생성하는 단계는 제 1 데이터 타입인 데이터와 제 2 데이터 타입인 데이터가 연산되어 1개의 데이터로 출력되는 경우, 제 1 데이터 타입과 제 2 데이터 타입 중 어느 하나를 출력된 데이터의 데이터 타입으로 결정하는 단계를 포함할 수 있다.
여기서, 데이터 타입 비트를 생성하는 단계는 설정된 데이터 타입을 갖는 명령어에 기초하여 데이터 타입 비트를 생성하는 단계를 포함할 수 있다.
개시된 내용에 따르면, 데이터 타입 필드가 포함된 레지스터를 이용하여 연산함으로써, 데이터를 효율적으로 연산할 수 있다.
도 1은 본 발명의 일 실시예와 관련된 프로세서의 블록 구성도(block diagram)이다.
도 2는 본 발명의 일 실시예에 따른 레지스터를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 데이터 사이즈 비트를 설명하기 위한 테이블이다.
도 4는 본 발명의 일 실시예에 따른 프로세서를 설명하기 위한 도면이다.
도 5는 본 발명의 다른 실시예에 따른 프로세서를 설명하기 위한 도면이다.
도 6은 본 발명의 또 다른 실시예에 따른 프로세서를 설명하기 위한 도면이다.
도 7은 본 발명의 또 다른 실시예에 따른 프로세서를 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 프로세서의 제어 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 레지스터를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 데이터 사이즈 비트를 설명하기 위한 테이블이다.
도 4는 본 발명의 일 실시예에 따른 프로세서를 설명하기 위한 도면이다.
도 5는 본 발명의 다른 실시예에 따른 프로세서를 설명하기 위한 도면이다.
도 6은 본 발명의 또 다른 실시예에 따른 프로세서를 설명하기 위한 도면이다.
도 7은 본 발명의 또 다른 실시예에 따른 프로세서를 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 프로세서의 제어 방법을 설명하기 위한 흐름도이다.
이하, 첨부된 도면을 참조하여 발명을 실시하기 위한 구체적인 내용에 대하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예와 관련된 프로세서의 블록 구성도(block diagram)이다.
프로세서(100)는 레지스터(register)(110), 연산부(arithmetic unit; ALU)(120) 및 제어부(control unit; CU)(130)를 포함한다.
레지스터(register)(110), 연산부(arithmetic unit; ALU)(120) 및 제어부(control unit; CU)(130)는 시스템 버스를 통해 데이터 등을 읽거나 쓸 수 있다. 여기서, 시스템 버스는 어드레스 버스, 데이터 버스 및 제어 버스를 포함할 수 있다.
레지스터(110)는 프로그램 등을 저장할 수 있는 메인 메모리(미도시)로부터 읽어온 명령어나 데이터를 저장하거나 연산된 결과를 저장할 수 있다. 레지스터(110)는 어드레스 레지스터, 프로그램 카운터, 데이터 레지스터, 명령어 레지스터 및 어큐뮬레이터 등으로 분류될 수 있다. 어드레스 레지스터는 메모리로부터 데이터를 읽거나 메모리에 데이터를 쓸 메모리 주소를 저장할 수 있다. 프로그램 카운터는 다음에 실행될 명령어가 저장된 메모리 주소를 저장할 수 있다. 데이터 레지스터는 메모리로부터 읽어온 데이터를 저장할 수 있다. 명령어 레지스터는 메모리로부터 읽어온 명령어를 저장할 수 있다. 레지스터(110)는 설명된 레지스터 이외에도 다양한 기능을 갖는 레지스터를 포함할 수 있다.
레지스터(110)는 데이터 타입 비트를 저장할 수 있는 데이터 타입 필드 및 데이터를 저장할 수 있는 데이터 필드를 포함한다. 여기서, 데이터 타입 비트는 테이터의 타입을 표시하기 위한 비트이다. 데이터 타입은 데이터의 크기 또는 사인/언사인과 관련될 수 있다.
도 2는 본 발명의 일 실시예에 따른 레지스터를 설명하기 위한 도면이다.
도 2를 참조하면, 레지스터(110)는 데이터 타입 필드(200) 및 데이터 필드(210)를 포함한다. 레지스터 파일은 데이터 타입 필드(200) 및 데이터 필드(210)를 포함하는 레지스터(110)를 여러 개 포함할 수 있다. 데이터 타입 필드(200)는 데이터 사이즈 비트(201) 및 사인/언사인 비트(sign/unsign bit)(202)를 포함할 수 있다. 여기서, 데이터 사이즈 비트(201)는 데이터 필드(210)에 저장된 데이터의 크기를 표시하는 비트이다. 사인/언사인 비트(sign/unsign bit) 데이터 필드(210)에 저장된 데이터가 사인(sign)형 인지 언사인(unsign)형 인지를 표시하는 비트이다. 예를 들면, 사인/언사인 비트(202)가 '0'인 경우, 데이터 필드(210)에 저장된 데이터는 사인(sign)형이고, 사인/언사인 비트(202)가 '1'이면, 데이터 필드(210)에 저장된 데이터는 언사인(unsign)형일 수 있다.
도 3은 본 발명의 일 실시예에 따른 데이터 사이즈 비트를 설명하기 위한 테이블이다. 구체적으로, 도 3은 데이터 필드(210)의 크기가 32 비트인 경우에 데이터 사이즈 비트를 설명하기 위한 도면이다.
도 2 및 도 3을 참조하면, 데이터 필드(210)의 크기가 32 비트(bit)인 경우, 데이터 필드(210)에 저장되는 데이터 사이즈는 8비트, 16비트, 24비트 및 32비트가 있다. 데이터 사이즈 비트는 각각의 데이터 사이즈에 대응되어 존재할 수 있다.
예를 들면, 데이터 사이즈가 8비트인 경우, 데이터 사이즈 비트는 '00'으로 표현될 수 있다. 데이터 사이즈가 16비트인 경우, 데이터 사이즈 비트는 '01'으로 표현될 수 있다. 데이터 사이즈가 24비트인 경우, 데이터 사이즈 비트는 '10'으로 표현될 수 있다. 데이터 사이즈가 32비트인 경우, 데이터 사이즈 비트는 '11'으로 표현될 수 있다.
이하 본 발명의 실시예에서는 데이터 필드(210)의 사이즈가 32비트인 경우를 기준으로 설명하겠지만, 데이터 필드(210)의 사이즈는 16비트, 64비트 등과 같이 다양하게 존재할 수 있다. 이에 따라, 데이터 사이즈 비트도 다양하게 변경될 수 있다.
연산부(ALU)(120)는 연산을 실행하는 장치이다. 연산부(120)는 덧셈, 뺄셈 등과 같은 산술 연산(arithmetic operation) 및 AND, OR 등과 같은 논리 연산(logical operation)을 실행할 수 있다.
연산부(120)는 데이터 타입 필드에 저장된 데이터 타입 비트에 기초하여 데이터 필드에 포함된 데이터를 연산할 수 있다.
예를 들면, 연산부(120)는 데이터 타입 필드에 포함된 사인/언사인 비트를 이용하여 연산을 실행할 수 있다. 사인(sign)형인 경우, 연산부(120)는 사인(sign)형 데이터를 연산하는 방법으로 데이터를 연산한다. 반면에, 언사인(unsign)형인 경우, 연산부(120)는 언사인(unsign)형 데이터를 연산하는 방법으로 데이터를 연산한다.
제어부(CU)(130)는 프로그램 명령어를 해석하고, 해석된 명령의 의미에 따라 연산 장치, 레지스터, 입출력 장치 등의 동작을 제어한다. 즉, 제어부(130)는 프로세서의 전반적인 동작을 제어한다.
제어부(130)는 데이터의 크기 또는 사인(sign)/언사인(unsign)과 관련된 데이터 타입을 나타내는 데이터 타입 비트를 생성하고, 생성된 데이터 타입 비트를 레지스터의 데이터 타입 필드에 저장할 수 있다.
제어부(130)는 제 1 데이터 타입을 갖는 데이터와 제 2 데이터 타입을 갖는 데이터가 연산되어 1 개의 데이터로 출력되는 경우, 제 1 데이터 타입과 제 2 데이터 타입 중 어느 하나를 출력된 데이터의 데이터 타입으로 결정한다. 그리고, 제어부(130)는 결정된 데이터 타입에 해당하는 데이터 타입 비트를 출력된 데이터의 데이터 타입 필드에 저장한다. 이에 대한 구체적인 설명은 이하의 도 4 및 도 5를 참조하여 후술하겠다. 이때, 제어부(130)의 기능은 연산부(120)에 통합될 수 있다. 예를 들면, 연산부(120)가 2개의 데이터를 연산할 수 있을 뿐만 아니라 출력된 데이터의 타입도 결정할 수 있다.
제어부(130)는 설정된 데이터 타입을 갖는 명령어에 기초하여 데이터 타입 비트를 생성할 수 있다. 예를 들면, 명령어가 설정된 데이터 타입을 갖는 데이터를 메인 메모리(미도시)로부터 읽어오고, 읽어온 데이터를 레지스터(110)의 데이터 필드에 저장하는 명령어인 경우, 제어부(130)는 읽어온 데이터를 레지스터(110)의 데이터 필드에 저장하고, 설정된 데이터 타입에 해당하는 데이터 타입 비트를 레지스터(110)의 데이터 타입 필드에 저장할 수 있다. 이에 대한 구체적인 설명은 이하의 도 6을 참조하여 후술하겠다.
또 다른 예를 들면, 명령어가 데이터 필드에 저장된 데이터를 설정된 데이터 타입으로 변경하는 명령어인 경우, 제어부(130)는 저장된 데이터를 설정된 데이터로 변경하고, 변경된 데이터를 레지스터(110)의 데이터 필드에 저장한다. 또한, 제어부(130)는 설정된 데이터 타입에 해당하는 데이터 타입 비트를 레지스터(110)의 데이터 타입 필드에 저장할 수 있다. 이에 대한 구체적인 설명은 이하의 도 7을 참조하여 후술하겠다.
제어부(130)는 데이터 타입 비트에 기초하여 데이터 필드에 저장된 데이터의 타입을 인식할 수 있다. 이에 따라, 제어부(130)는 데이터 필드에 저장된 데이터를 정확하게 인식할 수 있다. 예를 들면, 데이터 필드가 32비트이고, 데이터가 8비트인 경우, 제어부(130)는 데이터 사이즈 비트에 기초하여 데이터의 사이즈가 8비트임을 알 수 있다. 그러므로, 제어부(130)는 데이터 필드 중 8비트만이 데이터이고, 나머지 24비트는 필요없는 비트임을 판단할 수 있다. 또한, 제어부(130)는 사인/언사인 비트에 기초하여 데이터가 사인형인지 언사인형인지를 인식할 수 있다.
제어부(130)는 데이터 타입 필드에 포함된 사인/언사인 비트에 기초하여 연산을 실행하도록 연산부(120)를 제어할 수 있다. 예를 들면, 사인/언사인 비트가 사인(sign)형 비트인 경우, 제어부(130)는 사인(sign)형 데이터를 연산하는 방법으로 데이터가 연산되도록 연산부(120)를 제어한다. 반면에, 사인/언사인 비트가 언사인(unsign)형인 경우, 제어부(130)는 언사인(sign)형 데이터를 연산하는 방법으로 데이터가 연산되도록 연산부(120)를 제어한다.
본 발명의 일 실시예에 따른 프로세서는 데이터 타입 필드를 포함하는 레지스터를 이용하여 데이터를 연산함으로써, 데이터를 효율적으로 연산할 수 있다.
프로세서는 데이터 타입 비트를 이용하여 데이터 필드에 저장된 데이터의 크기를 알 수 있다. 프로세서는 데이터 필드의 사이즈보다 저장된 데이터의 사이즈가 작은 경우에도, 데이터 필드에 저장된 데이터의 사이즈를 알 수 있다. 따라서, 프로세서는 데이터 필드의 사이즈보다 저장된 데이터의 사이즈가 작은 경우에도, 데이터 필드에 저장된 데이터를 추출하기 위한 별도의 과정 없이도 정확하게 인식할 수 있다. 소프트웨어 측면에서 살펴보면, 별도의 추출과정을 실행하기 위한 프로그램 명령어가 제거됨으로써, 프로그램이 간단해 질 수 있다.
도 4는 본 발명의 일 실시예에 따른 프로세서를 설명하기 위한 도면이다.
도 3 및 도 4를 참조하면, 프로세서는 제 1 레지스터(410), 제 2 레지스터(420), 연산부(120) 및 제어부(130)를 포함한다.
제 1 레지스터(410)는 데이터 타입 필드(411) 및 데이터 필드(412)를 포함한다. 여기서, 데이터 필드는 32비트이고, 데이터 타입 필드는 3비트로 구성된다. 데이터 타입 필드(411)에는 데이터 사이즈 비트 및 사인/언사인 비트가 포함된다. 여기서, 데이터 사이즈 비트는 '00'이고, 사인/언사인 비트는 '0'이다. 따라서, 데이터 필드(412)에 저장된 데이터는 8비트이고, 사인(sign)형 데이터이다. 데이터 필드(412)에는 데이터('0000 0001')가 저장되어 있고, 데이터('0000 0001')의 앞쪽 비트들은 데이터의 처음 비트와 동일한 비트로 채워질 수 있다.
제 2 레지스터(420)는 데이터 타입 필드(421) 및 데이터 필드(422)를 포함한다. 데이터 타입 필드(421)에는 데이터 사이즈 비트 및 사인/언사인 비트가 포함된다. 여기서, 데이터 사이즈 비트는 '00'이고, 사인/언사인 비트는 '0'이다. 따라서, 데이터 필드(422)에 저장된 데이터는 8비트이고, 사인(sign)형 데이터이다. 데이터 필드(412)에는 데이터('0000 0010')가 저장되어 있고, 데이터('0000 0010')의 앞쪽 비트들은 데이터의 처음 비트와 동일한 비트로 채워질 수 있다.
이하에서는, 연산부(120)가 제 1 레지스터(410) 및 제 2 레지스터(420)에 저장된 데이터를 합산하는 경우를 기준으로 설명하지만, 본 실시예는 연산부(120)가 산술 연산 및 논술 연산하는 모든 경우에 적용될 수 있다.
제어부(130)는 제 1 레지스터(410) 및 제 2 레지스터(420)에 저장된 데이터를 합하여 1개의 데이터를 출력하는 명령어를 실행하는 경우, 연산부(120)가 제 1 레지스터(410) 및 제 2 레지스터(420)에 저장된 데이터를 연산하도록 제어한다.
또한, 제어부(130)는 제 1 레지스터(410)에 저장된 데이터의 타입 및 제 2 레지스터(420)에 저장된 데이터의 타입 중 어느 하나를 출력된 데이터의 타입으로 결정한다. 그리고, 제어부(130)는 결정된 데이터 타입에 해당하는 데이터 타입 비트를 출력된 데이터의 데이터 타입 필드에 저장한다.
예를 들면, 제어부(130)는 명령어에 따라 제 1 레지스터(410)의 데이터 필드(412)에 저장된 데이터와 제 2 레지스터(420)의 데이터 필드(422)에 저장된 데이터가 합산하고, 합산된 데이터를 출력하도록 연산부(120)를 제어하다. 제어부(130)는 출력된 데이터를 데이터 필드(431)에 저장한다. 또한, 제어부(130)는 제 1 레지스터(410)에 저장된 데이터의 타입 및 제 2 레지스터(420)에 저장된 데이터의 타입이 동일하므로, 출력된 데이터의 데이터 타입을 그대로 유지하도록 결정한다. 그 다음, 제어부(130)는 출력된 데이터의 데이터 타입 필드(430)에 데이터 타입 비트를 저장한다. 즉, 데이터 타입 필드(430)에는 데이터 사이즈 타입 비트('00') 및 사인/언사인 비트('0')가 저장된다. 이상에서는 데이터 타입이 동일한 경우를 기준으로 설명하였으며, 데이터 타입이 다른 경우는 이하의 도 5를 참조하여 후술하겠다.
본 발명의 일 실시예에 따른 프로세서는 데이터 타입 비트에 기초하여 데이터를 연산함으로써, 효율적으로 데이터를 연산할 수 있다.
도 5는 본 발명의 다른 일 실시예에 따른 프로세서를 설명하기 위한 도면이다.
도 3 및 도 5를 참조하면, 프로세서는 제 1 레지스터(510), 제 2 레지스터(520), 연산부(120) 및 제어부(130)를 포함한다.
제 1 레지스터(510)는 데이터 타입 필드(511) 및 데이터 필드(512)를 포함한다. 여기서, 데이터 필드는 32비트이고, 데이터 타입 필드는 3비트로 구성된다. 데이터 타입 필드(511)에는 데이터 사이즈 비트 및 사인/언사인 비트가 포함된다. 여기서, 데이터 사이즈 비트는 '00'이고, 사인/언사인 비트는 '0'이다. 따라서, 데이터 필드(512)에 저장된 데이터는 8비트이고, 사인(sign)형 데이터이다. 데이터 필드(512)에는 데이터('0000 0001')가 저장되고, 데이터('0000 0001')의 앞쪽 비트들은 데이터의 처음 비트와 동일한 비트로 채워질 수 있다.
제 2 레지스터(520)는 데이터 타입 필드(521) 및 데이터 필드(522)를 포함한다. 데이터 타입 필드(521)에는 데이터 사이즈 비트 및 사인/언사인 비트가 포함된다. 여기서, 데이터 사이즈 비트는 '01'이고, 사인/언사인 비트는 '0'이다. 따라서, 데이터 필드(522)에 저장된 데이터는 16비트이고, 사인(sign)형 데이터이다. 데이터 필드(512)에는 데이터('0000 0000 0000 0001')가 저장되고, 데이터('0000 0000 0000 0001')의 앞쪽 비트들은 데이터의 처음 비트와 동일한 비트로 채워질 수 있다.
이하에서는, 연산부(120)가 제 1 레지스터(510) 및 제 2 레지스터(520)에 저장된 데이터를 합산하는 경우를 기준으로 설명하지만, 본 실시예는 연산부(120)가 산술 연산 및 논술 연산하는 모든 경우에 적용될 수 있다.
제어부(130)는 제 1 레지스터(510) 및 제 2 레지스터(520)에 저장된 데이터를 합하여 1개의 데이터를 출력하는 명령어를 실행하는 경우, 제 1 레지스터(510)에 저장된 데이터의 타입 및 제 2 레지스터(520)에 저장된 데이터의 타입 중 어느 하나를 출력된 데이터의 타입으로 결정한다. 2 개의 데이터의 타입이 다른 경우, 제어부(130)는 2개의 데이터 중 데이터의 크기가 큰 데이터의 데이터 타입을 출력된 데이터의 타입으로 결정할 수 있다. 또는, 제어부(130)는 2개의 데이터 중 데이터의 크기가 작은 데이터의 데이터 타입을 출력된 데이터의 타입으로 결정할 수 있다. 그 다음, 제어부(130)는 결정된 데이터 타입에 해당하는 데이터 타입 비트를 출력된 데이터의 데이터 타입 필드에 저장한다.
예를 들면, 제어부(130)는 연산부(120)가 제 1 레지스터(510)의 데이터 필드(512)에 저장된 데이터와 제 2 레지스터(520)의 데이터 필드(522)에 저장된 데이터를 합산하도록 제어하다. 제어부(130)는 출력된 데이터를 데이터 필드(531)에 저장한다. 만약, 2개의 데이터 중 데이터의 크기가 큰 데이터의 데이터 타입을 출력된 데이터의 타입으로 결정하도록 설정된 경우, 제어부(130)는 출력된 데이터의 데이터 타입 비트를 '01 0'으로 결정한다. 즉, 출력된 데이터의 데이터 사이즈 비트는 '01'이고, 사인/언사인 비트는 '0'이다. 그 다음, 제어부(130)는 출력된 데이터의 데이터 타입 필드(530)에 데이터 타입 비트를 저장한다. 즉, 데이터 타입 필드(530)에는 데이터 사이즈 타입 비트('01') 및 사인/언사인 비트('0')가 저장된다.
반면에, 만약, 2개의 데이터 중 데이터의 크기가 작은 데이터의 데이터 타입을 출력된 데이터의 타입으로 결정하도록 설정된 경우, 제어부(130)는 데이터 타입 필드(530)에는 데이터 사이즈 타입 비트('00') 및 사인/언사인 비트('0')를 저장할 수 있다.
본 발명의 일 실시예에 따른 프로세서는 데이터 타입 비트에 기초하여 데이터를 연산함으로써, 효율적으로 데이터를 연산할 수 있다.
도 6은 본 발명의 또 다른 실시예에 따른 프로세서를 설명하기 위한 도면이다.
도 1, 도 3 및 도 6을 참조하면, 제어부(130)가 설정된 데이터 타입을 갖는 데이터를 메인 메모리(600)로부터 읽어오고, 읽어온 데이터를 레지스터(610)의 데이터 필드(612)에 저장하는 명령어를 실행하는 경우를 기준으로 설명한다. 제어부(130)는 설정된 데이터 타입에 해당하는 데이터 타입 비트를 데이터 타입 필드(611)에 저장할 수 있다.
설정된 데이터 타입을 갖는 명령어는 "load signed short"로 표현될 수 있다. 명령어에 따르면, 제어부(130)는 사인(signed)형이고, short의 크기를 갖는 데이터를 읽어오고, 읽어온 데이터를 레지스터에 저장한다. 위와 같은 명령어는 프로그래머에 의해서 새롭게 정의될 수 있다.
예를 들면, 설정된 데이터 타입이 8비트이고, 사인형인 경우, 제어부(130)는 8비트 데이터를 메인 메모리(600)로부터 읽어온다. 그 다음. 제어부(130)는 읽어온 데이터를 레지스터(610)의 데이터 필드(612)에 저장하고, 설정된 데이터 타입에 해당하는 데이터 타입 비트('00 0')를 데이터 타입 필드(611)에 저장할 수 있다.
데이터 타입은 24비트, 32비트 등과 같이 다양한 데이터 사이즈로 설정될 수 있다.
도 7은 본 발명의 또 다른 실시예에 따른 프로세서를 설명하기 위한 도면이다.
도 1, 도 3 및 도 7을 참조하면, 제어부(130)가 데이터 필드에 저장된 데이터를 설정된 데이터 타입으로 변경하는 설정된 데이터 타입을 갖는 명령어를 실행하는 경우를 기준으로 설명하겠다. 제어부(130)는 설정된 데이터 타입에 해당하는 데이터 타입 비트를 데이터 타입 필드에 저장할 수 있다.
설정된 데이터 타입을 갖는 명령어는 "MOV rd, rs, type"로 표현될 수 있다. 정의된 명령어에 따르면, 제어부(130)는 rs에 저장된 데이터를 설정된 데이터 타입(type)으로 변경하고, 변경된 데이터를 rd로 이동시킨다. 여기서, rd와 rs는 데이터의 주소일 수 있으며, 동일할 수 있다. 위와 같은 명령어는 프로그래머에 의해서 새롭게 정의될 수 있다.
예를 들면, 설정된 데이터 타입이 16비트이고, 사인형인 경우, 제어부(130)는 데이터 필드(712)에 저장된 데이터('0000 0001')를 16비트 데이터('0000 0000 0000 0001')로 변환하도록 연산부(120)를 제어한다. 그 다음, 제어부(130)는 변경된 데이터를 데이터 필드(722)에 저장할 수 있다. 또한, 제어부(130)는 기존의 데이터 타입 필드(710)에 저장된 데이터 타입 비트를 변환된 데이터의 데이터 타입 필드(720)에 저장된 데이터 타입 비트로 변경할 수 있다. 즉, 제어부(130)는 기존의 데이터 사이즈 비트('00')를 변경된 데이터의 데이터 타입 비트('01')로 변경할 수 있다. 그리고, 제어부(130)는 사인/언사인 필드(711)에 저장된 사인/언사인 비트는 그래도 유지한다.
명령어는 단순히 저장된 데이터를 변경하도록 설정되거나 변경된 데이터를 다른 위치로 저장하도록 설정될 수 있다. 따라서, 제어부(130)는 변경된 데이터 및 변경된 데이터의 데이터 타입 비트를 원래의 레지스터에 저장할 수도 있고, 다른 위치의 레지스터로 이동시킬 수 있다.
데이터 타입은 24비트, 32비트 등과 같이 다양한 데이터 사이즈로 설정될 수 있다.
도 8은 본 발명의 일 실시예에 따른 프로세서의 제어 방법을 설명하기 위한 흐름도이다.
도 1 및 도 8을 참조하면, 프로세서(100)는 데이터의 크기 또는 사인(sign)/언사인(unsign)과 관련된 데이터의 타입을 나타내는 데이터 타입 비트를 생성한다(700). 프로세서(100)는 생성된 데이터 타입 비트를 레지스터의 데이터 타입 필드에 저장한다(710).
프로세서(100)는 설정된 데이터 타입을 갖는 명령어에 기초하여 데이터 타입 비트를 생성할 수 있다. 여기서, 명령어는 설정된 데이터 타입을 갖는 데이터를 읽어 데이터 필드에 저장하는 명령어 및 저장된 데이터를 설정된 데이터 타입으로 변경하는 명령어 중 적어도 하나일 수 있다.
프로세서(100)는 제 1 데이터 타입인 데이터와 제 2 데이터 타입인 데이터가 연산되어 1개의 데이터로 출력되는 경우, 제 1 데이터 타입과 제 2 데이터 타입 중 어느 하나를 출력된 데이터의 데이터 타입으로 결정할 수 있다. 그 다음, 프로세서(100)는 출력된 데이터를 데이터 필드에 저장하고, 결정된 데이터 타입에 기초하여 출력된 데이터의 타입을 나타내는 데이터 비트를 생성할 수 있다.
프로세서(100)는 데이터 타입 비트에 기초하여 데이터 필드에 저장된 데이터의 타입을 인식할 수 있다.
본 발명의 일 실시예에 따른 프로세서의 제어 방법은 데이터 타입 필드를 포함하는 레지스터를 이용하여 데이터를 연산함으로써, 데이터를 효율적으로 연산할 수 있다.
설명된 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
또한, 실시예는 그 설명을 위한 것이며, 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술분야의 통상의 전문가라면 본 발명의 기술사상의 범위에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
또한, 본 발명의 일 실시예에 의하면, 전술한 방법은, 프로그램이 기록된 매체에 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 매체의 예로는, ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
Claims (15)
- 데이터 타입 필드 및 데이터 필드를 포함하는 레지스터; 및
데이터의 크기 및 데이터의 사인(sign)/언사인(unsign) 타입 중 적어도 하나를 포함하는 데이터 타입을 나타내는 데이터 타입 비트를 생성하고, 생성된 데이터 타입 비트를 상기 데이터 타입 필드에 저장하는 제어부를 포함하는 프로세서.
- 제 1 항에 있어서,
상기 제어부는,
제 1 데이터 타입을 갖는 데이터와 제 2 데이터 타입을 갖는 데이터가 연산되어 1개의 데이터로 출력되는 경우, 상기 제 1 데이터 타입과 상기 제 2 데이터 타입 중 어느 하나를 상기 출력된 데이터의 데이터 타입으로 결정하는 프로세서.
- 제 2 항에 있어서,
상기 제어부는,
출력된 데이터를 상기 데이터 필드에 저장하고, 상기 결정된 데이터 타입에 기초하여 상기 출력된 데이터의 타입을 나타내는 데이터 비트를 생성하는 프로세서.
- 제 1 항에 있어서,
상기 제어부는,
설정된 데이터 타입을 갖는 명령어에 기초하여 상기 데이터 타입 비트를 생성하는 프로세서.
- 제 4 항에 있어서,
상기 명령어는,
설정된 데이터 타입을 갖는 데이터를 읽어 상기 데이터 필드에 저장하는 명령어 및 저장된 데이터를 설정된 데이터 타입으로 변경하는 명령어 중 적어도 하나를 포함하는 프로세서.
- 제 1 항에 있어서,
상기 데이터 타입 비트는 상기 데이터의 크기를 표시하는 데이터 크기 비트 및 상기 사인/언사인을 표시하는 사인/언사인 비트 중 적어도 어느 하나를 포함하는 프로세서.
- 제 1 항에 있어서,
상기 제어부는,
상기 데이터 타입 비트에 기초하여 데이터 필드에 저장된 데이터의 타입을 인식하는 프로세서.
- 데이터를 저장할 수 있는 데이터 필드; 및
데이터의 크기 및 데이터의 사인(sign)/언사인(unsign) 타입 중 적어도 하나를 포함하는 데이터의 타입을 나타내는 데이터 타입 비트를 저장할 수 있는 데이터 타입 필드를 포함하는 레지스터.
- 제 8 항에 있어서,
상기 데이터 타입 비트는 상기 데이터의 크기를 표시하는 데이터 크기 비트 및 상기 사인/언사인을 표시하는 사인/언사인 비트 중 적어도 어느 하나를 포함하는 레지스터.
- 데이터의 크기 및 데이터의 사인(sign)/언사인(unsign) 타입 중 적어도 하나를 포함하는 데이터의 타입을 나타내는 데이터 타입 비트를 생성하는 단계; 및
생성된 데이터 타입 비트를 레지스터의 데이터 타입 필드에 저장하는 단계를 포함하는 프로세서의 제어 방법.
- 제 10 항에 있어서,
상기 데이터 타입 비트를 생성하는 단계는
제 1 데이터 타입인 데이터와 제 2 데이터 타입인 데이터가 연산되어 1개의 데이터로 출력되는 경우, 상기 제 1 데이터 타입과 상기 제 2 데이터 타입 중 어느 하나를 상기 출력된 데이터의 데이터 타입으로 결정하는 단계를 포함하는 프로세서의 제어 방법.
- 제 11 항에 있어서,
상기 데이터 타입 비트를 생성하는 단계는
출력된 데이터를 데이터 필드에 저장하고, 상기 결정된 데이터 타입에 기초하여 상기 출력된 데이터의 타입을 나타내는 데이터 비트를 생성하는 단계를 포함하는 프로세서의 제어 방법.
- 제 10 항에 있어서,
상기 데이터 타입 비트를 생성하는 단계는
설정된 데이터 타입을 갖는 명령어에 기초하여 상기 데이터 타입 비트를 생성하는 단계를 포함하는 프로세서의 제어 방법.
- 제 13 항에 있어서
상기 명령어는,
설정된 데이터 타입을 갖는 데이터를 읽어 데이터 필드에 저장하는 명령어 및 저장된 데이터를 설정된 데이터 타입으로 변경하는 명령어 중 적어도 하나를 포함하는 프로세서의 제어 방법.
- 제 10 항에 있어서,
상기 데이터 타입 비트에 기초하여 데이터 필드에 저장된 데이터의 타입을 인식하는 단계를 더 포함하는 프로세서의 제어 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100025352A KR101700405B1 (ko) | 2010-03-22 | 2010-03-22 | 레지스터, 프로세서 및 프로세서 제어 방법 |
US12/895,366 US8700887B2 (en) | 2010-03-22 | 2010-09-30 | Register, processor, and method of controlling a processor using data type information |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100025352A KR101700405B1 (ko) | 2010-03-22 | 2010-03-22 | 레지스터, 프로세서 및 프로세서 제어 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110106114A KR20110106114A (ko) | 2011-09-28 |
KR101700405B1 true KR101700405B1 (ko) | 2017-01-26 |
Family
ID=44648142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100025352A KR101700405B1 (ko) | 2010-03-22 | 2010-03-22 | 레지스터, 프로세서 및 프로세서 제어 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8700887B2 (ko) |
KR (1) | KR101700405B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9411395B2 (en) * | 2013-04-18 | 2016-08-09 | Intel Corporation | Method and apparatus to control current transients in a processor |
WO2022191859A1 (en) * | 2021-03-12 | 2022-09-15 | Zeku, Inc. | Vector processing using vector-specific data type |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4491908A (en) * | 1981-12-01 | 1985-01-01 | Honeywell Information Systems Inc. | Microprogrammed control of extended integer and commercial instruction processor instructions through use of a data type field in a central processor unit |
US6195746B1 (en) * | 1997-01-31 | 2001-02-27 | International Business Machines Corporation | Dynamically typed register architecture |
US20100042812A1 (en) * | 2008-08-14 | 2010-02-18 | International Business Machines Corporation | Data Dependent Instruction Decode |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4135242A (en) * | 1977-11-07 | 1979-01-16 | Ncr Corporation | Method and processor having bit-addressable scratch pad memory |
JP2673149B2 (ja) * | 1988-10-24 | 1997-11-05 | 工業技術院長 | タグ付計算機 |
US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
US6351806B1 (en) * | 1999-10-06 | 2002-02-26 | Cradle Technologies | Risc processor using register codes for expanded instruction set |
US20040024992A1 (en) * | 2002-08-02 | 2004-02-05 | Shan-Chyun Ku | Decoding method for a multi-length-mode instruction set |
WO2004084064A2 (en) | 2003-03-19 | 2004-09-30 | Koninklijke Philips Electronics N.V. | Type conversion unit in a multiprocessor system |
TW200625097A (en) | 2004-11-17 | 2006-07-16 | Sandbridge Technologies Inc | Data file storing multiple date types with controlled data access |
-
2010
- 2010-03-22 KR KR1020100025352A patent/KR101700405B1/ko active IP Right Grant
- 2010-09-30 US US12/895,366 patent/US8700887B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4491908A (en) * | 1981-12-01 | 1985-01-01 | Honeywell Information Systems Inc. | Microprogrammed control of extended integer and commercial instruction processor instructions through use of a data type field in a central processor unit |
US6195746B1 (en) * | 1997-01-31 | 2001-02-27 | International Business Machines Corporation | Dynamically typed register architecture |
US20100042812A1 (en) * | 2008-08-14 | 2010-02-18 | International Business Machines Corporation | Data Dependent Instruction Decode |
Also Published As
Publication number | Publication date |
---|---|
KR20110106114A (ko) | 2011-09-28 |
US20110231635A1 (en) | 2011-09-22 |
US8700887B2 (en) | 2014-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110036368B (zh) | 用于执行算术运算以累加浮点数的装置及方法 | |
JP5647859B2 (ja) | 乗累算演算を実行するための装置および方法 | |
US9146901B2 (en) | Vector floating point argument reduction | |
KR101873619B1 (ko) | 상태 기계 격자에서의 불리언 로직 | |
CN101208661B (zh) | 支持非正规输入处理机制的动态二进制翻译的方法和设备 | |
CN109635844B (zh) | 训练分类器的方法及装置和水印检测方法及装置 | |
TW201102914A (en) | Apparatus and method for dynamic floating point register precision control | |
KR102560424B1 (ko) | 와이드 데이터 타입들의 비교 | |
JP2006154979A (ja) | 浮動小数点数演算回路 | |
JP2009271598A (ja) | プロセッサ | |
KR101700405B1 (ko) | 레지스터, 프로세서 및 프로세서 제어 방법 | |
US11068463B2 (en) | System and method for managing log data | |
US20200012250A1 (en) | Program editing device, program editing method, and computer readable medium | |
KR101699685B1 (ko) | 명령어 오퍼랜드 변경 장치 및 방법 | |
US20120102496A1 (en) | Reconfigurable processor and method for processing a nested loop | |
KR20150035161A (ko) | 그래픽 처리 장치 및 이의 동작 방법 | |
US20200110580A1 (en) | Storing floating point values in integer representations for histogram recording | |
CN112199160B (zh) | 虚拟指令还原方法、装置、设备及存储介质 | |
WO2023093128A1 (zh) | 运算指令处理方法及系统、主处理器和协处理器 | |
WO2018150588A1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
CN111597886B (zh) | 一种用于指纹图像处理的硬件加速器、系统及加速方法 | |
JP5412900B2 (ja) | 組み込み用プログラムのシミュレータ及びシミュレーション方法 | |
CN111209039B (zh) | 指令处理方法及装置 | |
JP5263497B2 (ja) | 信号処理プロセッサ及び半導体装置 | |
JP6245820B2 (ja) | 再構成可能プロセッサの検証支援装置及び方法並びに再構成可能プロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
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: 20191216 Year of fee payment: 4 |