KR101700405B1 - 레지스터, 프로세서 및 프로세서 제어 방법 - Google Patents

레지스터, 프로세서 및 프로세서 제어 방법 Download PDF

Info

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
Application number
KR1020100025352A
Other languages
English (en)
Other versions
KR20110106114A (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 KR1020100025352A priority Critical patent/KR101700405B1/ko
Priority to US12/895,366 priority patent/US8700887B2/en
Publication of KR20110106114A publication Critical patent/KR20110106114A/ko
Application granted granted Critical
Publication of KR101700405B1 publication Critical patent/KR101700405B1/ko

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
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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/30181Instruction operation extension or modification
    • G06F9/30192Instruction 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

레지스터, 프로세서 및 프로세서 제어 방법{REGISTER, PROCESSOR AND METHOD FOR CONTROLLING PROCESSOR}
데이터를 저장하거나 연산된 결과를 저장할 수 있는 레지스터 및 레지스터에 저장된 데이터를 이용하여 동작을 실행하는 기술과 관련된다.
프로세서는 프로그램을 실행하기 위한 명령어를 처리할 수 있는 장치이다. 프로세서는 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은 본 발명의 일 실시예에 따른 프로세서의 제어 방법을 설명하기 위한 흐름도이다.
이하, 첨부된 도면을 참조하여 발명을 실시하기 위한 구체적인 내용에 대하여 상세하게 설명한다.
도 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)

  1. 데이터 타입 필드 및 데이터 필드를 포함하는 레지스터; 및
    데이터의 크기 및 데이터의 사인(sign)/언사인(unsign) 타입 중 적어도 하나를 포함하는 데이터 타입을 나타내는 데이터 타입 비트를 생성하고, 생성된 데이터 타입 비트를 상기 데이터 타입 필드에 저장하는 제어부를 포함하는 프로세서.
  2. 제 1 항에 있어서,
    상기 제어부는,
    제 1 데이터 타입을 갖는 데이터와 제 2 데이터 타입을 갖는 데이터가 연산되어 1개의 데이터로 출력되는 경우, 상기 제 1 데이터 타입과 상기 제 2 데이터 타입 중 어느 하나를 상기 출력된 데이터의 데이터 타입으로 결정하는 프로세서.
  3. 제 2 항에 있어서,
    상기 제어부는,
    출력된 데이터를 상기 데이터 필드에 저장하고, 상기 결정된 데이터 타입에 기초하여 상기 출력된 데이터의 타입을 나타내는 데이터 비트를 생성하는 프로세서.
  4. 제 1 항에 있어서,
    상기 제어부는,
    설정된 데이터 타입을 갖는 명령어에 기초하여 상기 데이터 타입 비트를 생성하는 프로세서.
  5. 제 4 항에 있어서,
    상기 명령어는,
    설정된 데이터 타입을 갖는 데이터를 읽어 상기 데이터 필드에 저장하는 명령어 및 저장된 데이터를 설정된 데이터 타입으로 변경하는 명령어 중 적어도 하나를 포함하는 프로세서.
  6. 제 1 항에 있어서,
    상기 데이터 타입 비트는 상기 데이터의 크기를 표시하는 데이터 크기 비트 및 상기 사인/언사인을 표시하는 사인/언사인 비트 중 적어도 어느 하나를 포함하는 프로세서.
  7. 제 1 항에 있어서,
    상기 제어부는,
    상기 데이터 타입 비트에 기초하여 데이터 필드에 저장된 데이터의 타입을 인식하는 프로세서.
  8. 데이터를 저장할 수 있는 데이터 필드; 및
    데이터의 크기 및 데이터의 사인(sign)/언사인(unsign) 타입 중 적어도 하나를 포함하는 데이터의 타입을 나타내는 데이터 타입 비트를 저장할 수 있는 데이터 타입 필드를 포함하는 레지스터.
  9. 제 8 항에 있어서,
    상기 데이터 타입 비트는 상기 데이터의 크기를 표시하는 데이터 크기 비트 및 상기 사인/언사인을 표시하는 사인/언사인 비트 중 적어도 어느 하나를 포함하는 레지스터.
  10. 데이터의 크기 및 데이터의 사인(sign)/언사인(unsign) 타입 중 적어도 하나를 포함하는 데이터의 타입을 나타내는 데이터 타입 비트를 생성하는 단계; 및
    생성된 데이터 타입 비트를 레지스터의 데이터 타입 필드에 저장하는 단계를 포함하는 프로세서의 제어 방법.
  11. 제 10 항에 있어서,
    상기 데이터 타입 비트를 생성하는 단계는
    제 1 데이터 타입인 데이터와 제 2 데이터 타입인 데이터가 연산되어 1개의 데이터로 출력되는 경우, 상기 제 1 데이터 타입과 상기 제 2 데이터 타입 중 어느 하나를 상기 출력된 데이터의 데이터 타입으로 결정하는 단계를 포함하는 프로세서의 제어 방법.
  12. 제 11 항에 있어서,
    상기 데이터 타입 비트를 생성하는 단계는
    출력된 데이터를 데이터 필드에 저장하고, 상기 결정된 데이터 타입에 기초하여 상기 출력된 데이터의 타입을 나타내는 데이터 비트를 생성하는 단계를 포함하는 프로세서의 제어 방법.
  13. 제 10 항에 있어서,
    상기 데이터 타입 비트를 생성하는 단계는
    설정된 데이터 타입을 갖는 명령어에 기초하여 상기 데이터 타입 비트를 생성하는 단계를 포함하는 프로세서의 제어 방법.
  14. 제 13 항에 있어서
    상기 명령어는,
    설정된 데이터 타입을 갖는 데이터를 읽어 데이터 필드에 저장하는 명령어 및 저장된 데이터를 설정된 데이터 타입으로 변경하는 명령어 중 적어도 하나를 포함하는 프로세서의 제어 방법.
  15. 제 10 항에 있어서,
    상기 데이터 타입 비트에 기초하여 데이터 필드에 저장된 데이터의 타입을 인식하는 단계를 더 포함하는 프로세서의 제어 방법.

KR1020100025352A 2010-03-22 2010-03-22 레지스터, 프로세서 및 프로세서 제어 방법 KR101700405B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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