KR20040002305A - 중앙처리장치 - Google Patents

중앙처리장치 Download PDF

Info

Publication number
KR20040002305A
KR20040002305A KR1020020037758A KR20020037758A KR20040002305A KR 20040002305 A KR20040002305 A KR 20040002305A KR 1020020037758 A KR1020020037758 A KR 1020020037758A KR 20020037758 A KR20020037758 A KR 20020037758A KR 20040002305 A KR20040002305 A KR 20040002305A
Authority
KR
South Korea
Prior art keywords
data
extension
instruction
extended
register
Prior art date
Application number
KR1020020037758A
Other languages
English (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 KR1020020037758A priority Critical patent/KR20040002305A/ko
Publication of KR20040002305A publication Critical patent/KR20040002305A/ko

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H35/00Delivering articles from cutting or line-perforating machines; Article or web delivery apparatus incorporating cutting or line-perforating devices, e.g. adhesive tape dispensers
    • B65H35/0006Article or web delivery apparatus incorporating cutting or line-perforating devices
    • B65H35/002Hand-held or table apparatus
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H20/00Advancing webs
    • B65H20/02Advancing webs by friction roller
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H27/00Special constructions, e.g. surface features, of feed or guide rollers for webs
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H35/00Delivering articles from cutting or line-perforating machines; Article or web delivery apparatus incorporating cutting or line-perforating devices, e.g. adhesive tape dispensers
    • B65H35/0006Article or web delivery apparatus incorporating cutting or line-perforating devices
    • B65H35/0073Details
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H2301/00Handling processes for sheets or webs
    • B65H2301/40Type of handling process
    • B65H2301/44Moving, forwarding, guiding material
    • B65H2301/443Moving, forwarding, guiding material by acting on surface of handled material
    • B65H2301/4431Moving, forwarding, guiding material by acting on surface of handled material by means with operating surfaces contacting opposite faces of material
    • B65H2301/44318Moving, forwarding, guiding material by acting on surface of handled material by means with operating surfaces contacting opposite faces of material between rollers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H2701/00Handled material; Storage means
    • B65H2701/30Handled filamentary material
    • B65H2701/37Tapes
    • B65H2701/377Adhesive tape

Abstract

본 발명의 중앙처리장치는 일반명령어, 확장명령어와 후위데이터확장명령어 및 후위데이터(FDATA)를 저장하는 저장부(10), 확장명령어나 후위데이터확장명령어의 실행에 따라 확장데이터(EDATA)를 저장하는 확장레지스터(20), 후위데이터확장명령어가 페치될 때 디코더에 의해 활성화되는 후위확장플래그(40), 확장명령어가 페치되거나 후위데이터확장명령어 실행전에 확장명령어가 실행되지 않았으면 후위데이터확장명령어가 페치될 때 디코더에 의해 활성화되는 확장플래그(30) 및 확장플래그(30)가 비활성화되어 있으며 후위데이터확장명령어의 오퍼랜드(FEOPR)를 확장레지스터(20)에 저장하고, 확장플래그(30)가 활성화되어 있으면 후위데이터확장명령어의 오퍼랜드(FEOPR)와 확장명령어에 의해 확장레지스터(20)에 기정된 확장데이터(EDATA)와 연산처리하여 연산처리된 결과를 확장레지스터(20)에 저장하고, 후위확장플래그(40)가 활성화되어 있으면 저장부(10)에 저장된 후위데이터(FDATA)를 페치하여 확장레지스터(20)에 저장된 확장데이터(EDATA)와 페치된 후위데이터(FDATA)를 연산처리하여 새로운 확장데이터(EDATA)를 생성시키고, 후위확장플래그(40)를 비활성화시키는 확장데이터(EDATA) 생성부(50)로 구성된다.

Description

중앙처리장치{Central Processor}
본 발명은 중앙처리장치에 관한 것으로, 특히 고정길이 명령어를 사용하는 중앙처리장치에서 저장부에 저장된 상수 데이터를 사용하여 특정 연산에 필요한 데이터의 크기를 가변시키거나 저장부에 저장된 상수 데이터를 사용하여 명령어의 크기를 가변시킬 수 있는 새로운 명령어를 생성시킬 수 있는 중앙처리장치에 관한 것이다.
일반적으로 중앙처리장치(Central Processor)는 연산코드와 오퍼랜드가 저장된 오퍼랜드 필드로 구성된 다수의 명령어들의 집합으로 이루어진 프로그램과 데이터가 저장된 저장부, 저장부에 저정된 명령어들을 페치(fetch)하여 페치된 명령어를 디코딩하여 다수의 제어신호들을 출력하는 디코딩부, 다수의 일반 레지스터로 구성된 레지스터 파일, 디코딩부의 제어신호 따라 명령어에서 지정하는 레지스터 에 저장된 데이터에 대해 연산처리하여 페치된 명령어를 실행하는 연산처리부로 구성된다.
명령어는 명령어의 길이에 따라, 즉 한 명령어의 비트 수(명령어의 길이)의 크기가 다양하면 가변길이 명령어라 하고, 모든 명령어의 비트 수의 크기가 같으면 고정길이 명령어라 한다.
종래의 중앙처리장치는 CISC(Complex Instruction Set Computer)와 RISC(Reduced Instruction Set Computer)로 나뉘어지며, CISC는 가변길이 명령어를 사용하고, RISC는 고정길이 명령어를 사용한다.
가변길이 명령어 방식은 명령어에 따라 그 명령어의 비트 수의 크기가 다양하고, 많은 종류의 명령어를 가지고 있으나 명령어의 길이가 가변이므로 명령어를 해석하는 디코더는 복잡한 구성을 갖고, 실행속도가 느린 단점을 가지고 있다.
반면에 고정길이 명령어 방식은 모든 명령어의 길이가 일정한 고정길이 명령어를 사용하는 것으로 디코더의 구성은 단순하고 고속동작이 가능하나 명령어의 길이가 고정되므로 표현될 수 있는 피연산자(operand)의 범위가 제한되는 문제점을갖는다. 즉 고정길이 명령어를 가진 중앙처리장치는 명령어의 크기가 모두 동일하므로 생성할 수 있는 상수데이터(immediate data), 변위(offset)나 저장부의 주소 등과 같은 데이터의 크기가 제한을 받게 되므로 명령어의 크기 보다 큰 상수데이터, 변위 또는 저장부의 주소는 한 명령어로 작성할 수 없다.
종래의 가변길이 명령어와 고정길이 명령어 방식에서의 상기 문제점을 해결하기 위한 것이 확장명령어 방식으로, 이러한 확장명령어 방식를 사용하는 중앙처리장치는 본원 출원인에 의해서 출원되어 2002년 1월 14일 특허등록된 제322277호의 확장명령어를 가진 중앙처리장치에 나타나 있다.
확장명령어 방식을 사용하는 중앙처리장치는 모든 명령어의 길이가 일정한 고정길이 명령어이면서 피연산자인 데이터의 크기를 확장시킬 수 있는 명령어(이하, 이를 확장명령어라 칭함.)와 확장된 데이터(이하, 이를 확장데이터라 칭함)를 저장하는 확장데이터 레지스터를 갖추어서 모든 길이의 데이터를 표현할 수 있다.
도 1은 확장명령어를 사용하는 중앙처리장치에서의 확장명령어의 동작도 이다.
명령어 크기 보다 큰 상수 값이나 저장부의 주소를 표현하기 위하여 확장명령어를 사용한 것으로, 디코더는 저장부에서 페치한 명령어의 연산코드를 해석하고, 그 연산코드가 일반명령어에 해당하는 연산코드(OP1,OP2)이면 해당 연산코드에 따라 연산처리부는 연산을 처리하고, 페치한 명령어의 연산코드가 확장명령어에 해당하는 연산코드(EOP)이면 확장명령어의 피연산자(OPR3,OPR4,OPR5)를 확장레지스터(ER)에 저장한다.
도 1에 도시된 바와 같이, 일반명령어 다음에 확장명령어가 연속으로 수행되고 확장명령어 뒤에 확장레지스터에 저장되어 있는 확장데이터를 사용하는 일반명령어가 수행되는 경우, 일반명령어1과 일반명령어2는 각각 수행되며 확장플래그(EF)가 비활성화, 즉 로우논리값을 기지고 있으므로 일반명령어1 수행 전에 확장명령어가 수행되지 않았음을 알 수 있으며, 확장레지스터(ER)가 비어 있음(E)을 나타내게 된다. 일반명령어1과 일반명령어2는 확장데이터를 사용하지 않고 명령어를 수행하게 된다. 확장명령어1은 처음으로 수행되는 확장명령어이므로 확장명령어1의 오퍼랜드3(EOPR3)의 부호비트를 확장(SBE)하여 확장데이터를 생성한 뒤 확장레지스터(ER)에 저장한다. 또한 디코더는 확장명령어를 페치하였으므로 확장플래그(EF)를 하이논리값으로 활성화시킨다. 두 번째 확장명령어인 확장명령어2는 확장플래그(EF)가 이미 활성화되어 있으므로 확장레지스터(ER)에 저장된 확장데이터(EOPR3)를 확장명령어2의 오퍼랜드4(EOPR4)의 크기만큼 상위로 이동(shift)시킨 뒤 오퍼랜드4(EOPR4)에 더하여 새로운 확장데이터를 생성한다. 확장플래그(EF)는 계속 활성화되어 있다. 마지막 확장명령어인 확장명령어3도 확장명령어2와 같은 방식으로 동작하여 새로운 확장데이터를 생성하여 확장레지스터(ER)에 저장한다. 그 다음의 명령어가 일반명령어이면 디코더는 일반명령어3에 의해 확장플래그(EF)를 로우논리값을 갖도록 비활성화시키고, 확장레지스터(ER)에 저장된 확장데이터와 일반명령어3의 오퍼랜드(OPR6)에 대해서 디코더에 의해 해석된 일반명령어3에 따른 명령어를 실행하며. 확장레지스터(ER)는 비어있게 된다.
상기와 같이 고정길이 명령어 방식에서 확장명령어를 반복 사용함으로써 명령어에서 필요로 하는 크기의 큰 상수 값이나 저장부의 주소를 만들 수 있다.
그러나 종래의 확장명령어를 사용하는 고정길이 명령어 방식의 중앙처리장치는 확장명령어도 디코더가 확장명령어인 것을 인식하기 위해 반드시 확장명령어임을 나타내는 연산코드(EOP)가 필요하므로 연산코드가 차지하는 비트의 수만큼 확장명령어의 오퍼랜드 필드 부분인 오퍼랜드(EOPR3,EOPR4,EOPR5)의 비트수의 크기에는 제한이 생기게 되므로 원하는 만큼의 데이터를 확장시키기 위해 보다 많은 확장명령어를 사용하여야 하므로 프로그램의 크기가 증가되는 문제점을 가지고 있다.
또한 종래의 확장명령어를 사용하는 고정길이 명령어 방식의 중앙처리장치는 연산처리에 필요한 데이터의 크기만을 확장시킬 수 있을 뿐 명령어의 크기가 모두 동일하므로 복잡한 연산을 수행하기 위해 많은 명령어를 사용하여야 하므로 프로그램의 크기가 증가되는 문제점을 가지고 있다.
본 발명의 목적은 프로그램이 저장된 저장부에는 연산처리시 데이터를 확장시키기 위한 후위데이터를 확장명령어 다음에 위치하도록 하여 확장명령어 수행시 확장명령어 다음에 페치되는 후위데이터와 확장레지스터에 기저장된 확장데이터와 연산처리하여 연산처리된 새로운 확장데이터를 확장레지스터에 저장함으로써 확장데이터의 크기를 크게 하여 프로그램의 크기를 줄일 수 있는 중앙처리장치를 제공하는 데 있다.
본 발명의 다른 목적은 프로그램이 저장된 저장부에는 연산처리시 데이터를 확장시키기 위한 후위데이터를 후위데이터확장명령어 다음에 위치하도록 하여 후위데이터확장명령어 수행시 후위데이타확장명령어의 오퍼랜드와 확장명령어에 의해 확장레지스터에 기저장된 확장데이터와 연산처리하여 연산처리된 새로운 확장데이터를 확장레지스터에 저장하고, 후위데이터확장명령어 다음에 페치되는 후위데이터와 확장레지스터에 저장된 확장데이터를 연산처리하여 연산처리된 새로운 확장데이터를 다시 확장레지스터에 저장함으로써 확장데이터의 크기를 크게 하여 프로그램의 크기를 줄일 수 있는 중앙처리장치를 제공하는 데 있다.
본 발명의 또 다른 목적은 명령어의 크기를 증가시키기 위한 명령어인 후위코드확장명령어와 후위코드확장명령어 다음에 위치하는 후위데이터를 저장부에 저장하여 후위코드확장명령어에 따라 확장레지스터에 후위코드확장명령어의 오퍼랜드를 저장하고, 후위코드확장명령어 다음에 페치되는 후위데이터와 확장레지스터에 저장된 확장데이터를 연산처리하여 연산처리된 데이터를 복잡한 연산을 수행하기 위한 명령어로 사용함으로써 프로그램의 크기를 줄일 수 있는 중앙처리장치를 제공하는 데 있다.
도 1은 종래의 데이터를 확장하기 위한 명령어인 확장명령어의 동작도,
도 2는 본 발명의 중앙처리장치를 도시한 블럭다이아그램,
도 3은 본 발명의 후위데이터에 따른 데이터를 확장하기 위한 확장명령어와 확장레지스터의 동작관계를 설명하기 위한 동작도,
도 4는 본 발명의 후위데이터에 따른 데이터를 확장하기 위한 후위데이터확장명령어와 확장레지스터의 동작관계를 설명하기 위한 동작도,
도 5는 본 발명의 다른 실시례의 중앙처리장치를 도시한 블럭다이아그램,
도 6은 후위데이터에 따른 명령어를 확장하기 위한 명령어인 후위코드확장명령어와 확장레지스터의 동작관계를 설명하기 위한 동작도 이다.
상기의 목적을 달성하기 위하여 본 발명의 중앙처리장치는 명령어의 크기가 동일한 일반명령어, 일반명령어 보다 큰 데이터를 생성하기 위한 명령어인 확장명령어 및 확장명령어 다음에 저장되어 일반명령어 실행에 따른 연산처리시 데이터를 확장시키기 위한 후위데이터를 저장하는 저장부;확장명령어의 실행에 따라 일반명령어의 크기보다 큰 데이터인 확장데이터를 저장하는 확장레지스터;확장명령어가 페치될 때 디코더에 의해 활성화되어 확장명령어의 실행 유무를 나타내는 확장플래그;확장명령어의 오퍼랜드의 특정 비트의 활성화 상태에 따라 확장명령어의 페치시 디코더에 의해 활성화되는 후위확장플래그; 및 확장명령어의 실행을 위해 페치된 확장명령어에 따라 확장플래그가 활성화되어 있지 않으면 확장명령어의 오퍼랜드를 확장레지스터에 저장하고 확장플래그가 활성화되어 있으면, 확장레지스터에 저장되어 있는 확장데이터와 확장명령어의 오퍼랜드를 연산처리하여 연산처리된 결과를 확장레지스터에 저장하고, 후위확장플래그가 활성화되면 저장부에 저장된 후위데이터를 페치하고, 확장레지스터에 저장된 확장데이터와 후위데이터를 연산처리하여 새로운 확장데이터를 생성시켜 생성된 확장데이터를 확장레지스터에 저장하고, 후위확장플래그를 비활성화시키는 확장데이터 생성부를 구비하여 확장명령어 다음의 일반명령어 실행시 일반명령어의 오퍼랜드와 확장레지스터에 저장된 확장데이터를 연산처리하여 연산처리한 결과를 일반명령어의 오퍼랜드로 사용하고, 확장플래그를 비활성화시키는 것을 특징으로 한다.
상기의 다른 목적을 달성하기 위하여 본 발명의 중앙처리장치는 명령어의 크기가 동일한 일반명령어, 일반명령어 보다 큰 데이터를 생성하기 위한 명령어인 확장명령어와 후위데이터확장명령어 및 후위데이터확장명령어 다음에 저장되어 일반명령어 실행에 따른 연산처리시 데이터를 확장시키기 위한 후위데이터를 저장하는 저장부;확장명령어 또는 후위데이터확장명령어의 실행에 따라 일반명령어의 크기보다 큰 데이터인 확장데이터를 저장하는 확장레지스터;후위데이터확장명령어가 페치될 때 디코더에 의해 활성화되어 후위데이터확장명령어의 실행 유무를 나타내는 후위확장플래그; 및확장명령어가 페치되거나 후위데이터확장명령어 실행전에 확장명령어가 실행되지 않았으면 후위데이터확장명령어가 페치될 때 디코더에 의해 활성화되어 확장레지스터에 확장데이터가 저장되어 있음을 나타내는 확장플래그; 및후위데이터확장명령어의 실행을 위해 페치된 후위데이터확장명령어에 따라 확장플래그가 비활성화되어 있으면 후위데이터확장명령어의 오퍼랜드를 확장레지스터에 저장하고, 확장플래그가 활성화되어 있으면 후위데이터확장명령어의 오퍼랜드와 확장명령어에 의해 확장레지스터에 기정된 확장데이터와 연산처리하여 연산처리된 결과를 확장레지스터에 저장하고, 후위확장플래그가 활성화되어 있으면 저장부에 저장된 후위데이터를 페치하여 확장레지스터에 저장된 확장데이터와 페치된 후위데이터를 연산처리하여 새로운 확장데이터를 생성시켜 생성된 확장데이터를 확장레지스터에 저장하고, 후위확장플래그를 비활성화시키는 확장데이터 생성부를 구비하여 후위데이터확장명령어 다음의 일반명령어 실행시 일반명령어의 오퍼랜드와 확장레지스터에 저장된 확장데이터를 연산처리하여 연산처리한 결과를 일반명령어의 오퍼랜드로 사용하고, 확장플래그를 비활성화시키는 것을 특징으로 한다.
상기의 또 다른 목적을 달성하기 위하여 본 발명의 중앙처리장치는 명령어의 크기가 동일한 일반명령어, 일반명령어의 연산코드의 비트수 보다 큰 연산코드를 가진 명령어를 생성하기 위한 후위코드확장명령어 및 후위코드확장명령어 다음의 위치에 저장되어 후위코드확장명령어 수행 후 다음에 페치되는 후위데이터를 저장하는 저장부;후위코드확장명령어의 실행에 따라 후위코드확장명령어의 오퍼랜드를 저장하는 확장레지스터;후위코드확장명령어가 페치될 때 디코더에 의해 활성화되어 후위코드확장명령어의 실행 유무를 나타내는 후위코드확장플래그; 및후위코드확장플래그가 활성화되면 저장부에 저장된 후위데이터를 페치하여 확장레지스터에 저장된 데이터와 후위데이터를 연산처리하여 후위명령어를 디코더로 출력시키고, 후위코드확장플래그를 비활성화시키는 후위명령어 생성부를 구비한 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 중앙처리장치를 상세히 설명하고자 한다.
도 2는 본 발명의 중앙처리장치를 도시한 블럭다이아그램이다.
도 2에 도시된 바와 같이 본 발명의 제1실시례인 중앙처리장치는 명령어의 크기가 동일한 일반명령어, 일반명령어 보다 큰 데이터를 생성하기 위한 명령어인 확장명령어 및 확장명령어 다음에 저장되어 일반명령어 실행에 따른 연산처리시 데이터를 확장시키기 위한 후위데이터(FDATA)를 저장하는 저장부(10), 확장명령어의 실행에 따라 일반명령어의 크기보다 큰 데이터인 확장데이터(EDATA)를 저장하는 확장레지스터(20), 확장명령어가 페치될 때 디코더(60)에 의해 활성화되어 확장명령어의 실행 유무를 나타내는 확장플래그(30), 확장명령어의 오퍼랜드의 특정 비트의 활성화 상태에 따라 확장명령어의 페치시 디코더에 의해 활성화되는 후위확장플래그(40) 및 확장명령어의 실행을 위해 페치된 확장명령어에 따라 확장플래그(30)가 활성화되어 있지 않으면 확장명령어의 오퍼랜드를 확장레지스터(20)에 저장하고 확장플래그(30)가 활성화되어 있으면, 확장레지스터(20)에 저장되어 있는 확장데이터와 확장명령어의 오퍼랜드(EOPR)를 연산처리하여 연산처리된 결과를확장레지스터(20)에 저장하고, 후위확장플래그(40)가 활성화되면 저장부(10)에 저장된 후위데이터(FDATA)를 페치하고, 확장레지스터(20)에 저장된 확장데이터(EDATA)와 후위데이터(FDATA)를 연산처리하여 새로운 확장데이터(EDATA)를 생성시켜 생성된 확장데이터(EDATA)를 확장레지스터(20)에 저장하고, 후위확장플래그(40)를 비활성화시키는 확장데이터 생성부(50)로 구성되어 확장명령어 다음의 일반명령어 실행시 일반명령어의 오퍼랜드(OPR)와 확장레지스터(20)에 저장된 확장데이터(EDATA)를 연산처리한 결과를 일반명령어의 오퍼랜드(OPR)로 사용하고, 확장플래그(30)를 비활성화시킨다.
본 발명의 제2실시례인 중앙처리장치는 명령어의 크기가 동일한 일반명령어, 일반명령어 보다 큰 데이터를 생성하기 위한 명령어인 확장명령어와 후위데이터확장명령어 및 후위데이터확장명령어 다음에 저장되어 일반명령어 실행에 따른 연산처리시 데이터를 확장시키기 위한 후위데이터(FDATA)를 저장하는 저장부(10), 확장명령어 또는 후위데이터확장명령어의 실행에 따라 일반명령어의 크기보다 큰 데이터인 확장데이터(EDATA)를 저장하는 확장레지스터(20), 후위데이터확장명령어가 페치될 때 디코더에 의해 활성화되어 후위데이터확장명령어의 실행 유무를 나타내는 후위확장플래그(40), 확장명령어가 페치되거나 후위데이터확장명령어 실행전에 확장명령어가 실행되지 않았으면 후위데이터확장명령어가 페치될 때 디코더에 의해 활성화되어 확장레지스터(20)에 확장데이터(EDATA)가 저장되어 있음을 나타내는 확장플래그(30) 및 후위데이터확장명령어의 실행을 위해 페치된 후위데이터확장명령어에 따라 확장플래그(30)가 비활성화되어 있으면 후위데이터확장명령어의 오퍼랜드(FEOPR)를 확장레지스터(20)에 저장하고, 확장플래그(30)가 활성화되어 있으면 후위데이터확장명령어의 오퍼랜드(FEOPR)와 확장명령어에 의해 확장레지스터(20)에 기정된 확장데이터(EDATA)와 연산처리하여 연산처리된 결과를 확장레지스터(20)에 저장하고, 후위확장플래그(40)가 활성화되어 있으면 저장부(10)에 저장된 후위데이터(FDATA)를 페치하여 확장레지스터(20)에 저장된 확장데이터(EDATA)와 페치된 후위데이터(FDATA)를 연산처리하여 새로운 확장데이터(EDATA)를 생성시켜 생성된 확장데이터(EDATA)를 확장레지스터(20)에 저장하고, 후위확장플래그(40)를 비활성화시키는 확장데이터(EDATA) 생성부(50)로 구성되어 후위데이터확장명령어 다음의 일반명령어 실행시 일반명령어의 오퍼랜드(OPR)와 확장레지스터에 저장된 확장데이터(EDATA)를 연산처리하고 연산처리된 결과를 일반명령어의 오퍼랜드(OPR)로 사용하고, 확장플래그(30)를 비활성화시킨다.
확장데이터 생성부(50)에서 확장레지스터(20)에 저장된 확장데이터(EDATA)와 후위데이터(FDATA)의 연산처리는 확장레지스터(20)에 저장된 확장데이터(EDATA)를 후위데이터(FDATA)의 비트수 만큼 좌측으로 쉬프트시킨 후 쉬프트된 확장데이터(EDATA)와 후위데이트(FDATA)를 가산하거나 반대로 후위데이터(FDATA)를 확장레지스터(20)에 저장된 확장데이터(EDATA)의 비트수 만큼 좌측으로 쉬프트시킨 후 쉬프트된 후위데이터(FDATA)와 확장데이터(EDATA)를 가산할 수도 있다.
확장명령어의 오퍼랜드(EOPR)를 확장레지스터(20)에 저장할 때나 후위확장명령어의 오퍼랜드(FEOPR)를 확장레지스터(20)에 저장할 때 확장명령어의 오퍼랜드(EOPR)나 후위확장명령어의 오퍼랜드(FEOPR)의 부호비트를 확장시켜 확장레지스터(20)에 저장할 수 있다.
후위데이터(FDATA)를 확장레지스터(20)에 저장된 확장데이터(EDATA)의 비트수 만큼 좌측으로 쉬프트시킬 때 후위데이터(FDATA)의 부호비트를 확장시켜 쉬프트시킬 수 있다.
도 5는 본 발명의 다른 실시례의 중앙처리장치를 도시한 블럭다이아그램이다.
도 5에 도시된 바와 같이 본 발명의 중앙처리장치는 명령어의 크기가 동일한 일반명령어, 일반명령어의 연산코드(OP)의 비트수 보다 큰 연산코드를 가진 명령어를 생성하기 위한 후위코드확장명령어 및 후위코드확장명령어 다음의 위치에 저장되어 후위코드확장명령어 수행 후 다음에 페치되는 후위데이터(FDATA)를 저장하는 저장부(100), 후위코드확장명령어의 실행에 따라 후위코드확장명령어의 오퍼랜드(FEOPR)를 저장하는 확장레지스터(200), 후위코드확장명령어가 페치될 때 디코더에 의해 활성화되어 후위코드확장명령어의 실행 유무를 나타내는 후위코드확장플래그(300), 후위코드확장플래그(300)가 활성화되면 저장부(100)에 저장된 후위데이터(FDATA)를 페치하여 확장레지스터에 저장된 확장데이터(EDATA)와 후위데이터를 연산처리하여 후위명령어(FINS)를 디코더(400)로 출력시키고, 후위코드확장플래그(300)를 비활성화시키는 후위명령어 생성부(500)로 구성된다.
후위명령어 생산부(500)에서 확장레지스터에 저장된 확장데이터(EDATA)와 후위데이터(FDATA)의 연산처리는 확장레지스터에 저장된 확장데이터(EDATA)를 후위데이터의 비트수 만큼 좌측으로 쉬프트시킨 후 쉬프트된 확장데이터(EDATA)와 후위데이트를 가산하거나 후위데이터를 확장데이터(EDATA)의 비트수 만큼 좌측으로 쉬프트시킨 후 쉬프트된 후위데이터와 확장데이터(EDATA)를 가산한 것이다.
상기의 구성에 따른 본 발명인 중앙처리장치의 동작은 다음과 같다.
일반적으로 중앙처리장치는 명령어의 집합인 프로그램과 데이터가 저장되어 있는 저장부(10,100)에서 명령어(INS)를 읽어서 디코더(60,400)에서 이를 디코딩하고, 레지스터들의 집합인 레지스터화일에서 명령어(INS)에서 지정하는 레지스터를 읽어, 명령어(INS)가 지정하는 연산을 연산처리부(70,500)에서 수행하여, 그 결과를 저장부(10,100)나 레지스터에 저장한다.
본 발명에 따른 중앙처리장치에서 명령어(INS)는 일반명령어, 확장명령어, 후위데이터확장명령어, 후위코드확장명령어로 구분된다. 일반명령어는 산술연산이나 데이터의 처리를 수행하는 명령어이고, 확장명령어와 후위데이터확장명령어는 일반명령어에서 사용할 오퍼랜드의 크기를 증가시키기 위하여 사용한다.
도 3은 본 발명의 제1실시례인 후위데이터에 따른 데이터를 확장하기 위한 확장명령어와 확장레지스터의 동작관계를 설명하기 위한 동작도이다.
본 발명의 제1실시례인 중앙처리장치의 경우 저장부(10)에는 명령어의 크기가 동일한 일반명령어, 일반명령어 보다 큰 데이터를 생성하기 위한 명령어인 확장명령어 및 확장명령어 다음에 저장되어 일반명령어 실행에 따른 연산처리시 데이터를 확장시키기 위한 후위데이터(FDATA)를 저장하고 있다.
도 3에 도시된 바와 같이 저장부(10)에 순차적으로 일반명령어1,일반명령어2, 확장명령어, 후위데이터1 및 일반명령어3가 저장되어 있다면, 중앙처리장치는 저장부(10)에 저장된 일반명령어1을 페치하면 디코더(70)는 일반명령어1을 디코딩한다. 연산처리부(70)는 일반명령어1의 디코딩에 의해 일반명령어1의 연산코드(OP1)에 해당하는 연산을 수행한다. 이때 확장플래그(30,EF)와 후위확장플래그(40,FEF)는 비활성화된 상태에 있게 되며, 확장레지스터(20,ER)에는 빈 상태(E)로 있게 된다. 그 다음에 오는 명령어(INS)도 일반명령어이므로 상기와 같이 연산처리부(70)는 일반명령어2의 연산코드(OP2)에 따라 연산을 수행하게 된다. 일반명령어2의 수행후 저장부(10)로부터 확장명령어가 페치되면 디코더(60)는 확장명령어의 연산코드(EOP)와 확장명령어의 오퍼랜드(EOPR1)의 특정 비트를 해독하여 확장명령어인 것을 인식하고 동시에 확장명령어 다음에 오는 명령어가 후위데이터(FDATA)인지 아닌지를 판별한다. 예를 들어 확장명령어의 오퍼랜드(EOPR1)의 특정 비트가 활성화되어 있다면 확장명령어 다음에 오는 명령어가 후위데이터(FDATA)인 것을 판독하여 후위확장플래그제어신호(FEFC)를 출력하여 후위확장플래그(40,FEF)를 활성화시키고, 그렇지 않은 경우에는 후위확장플래그(40,FEF)를 비활성화시킨다. 또한 디코더(70)는 페치된 확장명령어에 따라 확장플래그제어신호(EFC)를 출력하여 확장플래그(30,EF)를 활성화시킨다. 도 3의 경우에 확장명령어는 후위데이터(FDATA)를 가지는 확장명령어이므로 이 확장명령어를 디코더에서 디코드하게 되면 후위확장플래그(40, FEF)는 활성화된다. 디코더(60)에 의해 확장명령어가 페치되었으므로 확장데이터 생성부(50)는 확장명령어의 오퍼랜드(EOPR1)를 확장레지스터(20)에 저장한다. 확장명령어의 오퍼랜드(EOPR1)를 확장레지스터(20)에 저장시 도 3에 도시된바와 같이 확장명령어의 오퍼랜드(EOPR1)의 부호비트를 확장(SBE)시켜 저장할 수도 있고, 부호비트의 확장없이 저장할 수도 있다. 저장부(10)에 저장된 그 다음의 명령어를 페치하는 경우 이미 후위확장플래그(40,FEF)가 활성화되어 있으므로 디코더(70)는 페치된 명령어는 후위데이터(FDATA)인 것을 알 수 있으며, 확장데이터 생성부(50)는 디코더(70)의 출력인 후위데이터(FDATA)와 확장레지스터(20)에 기저장된 확장데이터(EDATA)를 수신하여 후위데이터(FDATA)와 확장데이터(EDATA)를 연산처리한다. 연산처리후 확장데이터 생성부(50)는 후위확장플래그(40,FEF)를 비활성화시켜 후위데이터(FDATA)의 사용완료를 나타내도록 한다.
후위데이터(FDATA) 연산처리방법은 도 3에 도시된 바와 같이 확장레지스터(20)에 저장된 확장데이터(EDATA,EOPR1)를 후위데이터(FDATA)의 비트수 만큼 좌측으로 쉬프트시킨 후 쉬프트된 확장데이터(EDATA,EOPR1)와 후위데이트(FDATA)를 가산하거나 반대로 후위데이터(FDATA)를 확장레지스터(20)에 저장된 확장데이터(EDATA,EOPR1)의 비트수 만큼 좌측으로 쉬프트시킨 후 쉬프트된 후위데이터(FDATA)와 확장데이터(EDATA,EOPR1)를 가산할 수도 있다.
확장명령어 다음에 일반명령어3가 수행되면 중앙처리장치는 일반명령어의 실행에 앞서 일반명령어3의 오퍼랜드(OPR3)와 확장레지스터(20)에 저장된 확장데이터(EDATA)와 연산처리하고, 연산처리된 결과를 오퍼랜드로 하여 일반명령어3에 따라 연산처리를 실행하고, 확장플래그(30,EF)를 비활성화시켜 확장명령어에 따른 확장데이터의 사용이 완료됨을 나타낸다.
따라서 상기와 같이 명령어의 비트수와 동일한 크기의 후위데이터(FDATA)를사용하여 확장레지스터에 보다 큰 확장데이터를 만들어 저장할 수 있으므로 종래의 후위데이터를 사용하지 않은 확장명령어에 비해 명령어의 개수를 줄일 수 있다.
본 발명의 제2실시례인 중앙처리장치는 제1실시례인 중앙처리장치와는 달리 데이터를 확장시키기 위해 확장명령어 외에 후위데이터확장명령어를 더 사용하고, 후위데이터는 후위데이터확장명령어 다음에 수행되도록 한다.
도 2에 도시된 바와 같이 제2실시례인 중앙처리장치는 명령어(INS)를 저장부(10)로부터 수신하여, 이를 디코딩한다. 만일 명령어(INS)가 후위데이터확장명령어이면 확장데이터 생성부(50)는 확장플래그(30)의 상태에 따라 확장레지스터(20)에 저장되어 있는 확장데이터(EDATA)와 후위데이터확장명령어의 오퍼랜드필드의 오퍼랜드(FEOPR)를 연산 처리하여 새로운 확장데이터를 생성하고 이를 확장레지스터(20)에 저장한다. 예를 들어 확장플래그(30)가 활성화되어 있으면 확장레지스터(20)에 저장되어 있는 확장데이터(EDATA)를 후위데이터확장명령어의 오퍼랜드(FEOPR) 크기만큼 상위로 이동시키고, 이동된 확장데이터(EDATA)와 후위데이터확장명령어의 오퍼랜드(FEOPR)를 더하여 새로운 확장데이터를 만든다. 만일 확장플래그(30)가 비활성화되어 있다면 후위데이터확장명령어의 오퍼랜드(FEOPR)를 확장레지스터(20)에 저장한다. 반대로 후위데이터확장명령어의 오퍼랜드(FEOPR)를 확장레지스터(20)에 저장되어 있는 확장데이터(EDATA)의 비트수 만큼 이동시킨 후 이동된 오퍼랜드와 확장데이터(EDATA)를 가산할 수도 있다. 또한 오퍼랜드를 부호확장을 하여 확장레지스터(20)에 저장할 수도 있고, 부호확장을 하지 않고 확장레지스터에 저장할 수도 있다.
상기와 같은 방법에 의해 확장레지스터(20)에 새로운 확장데이터를 저장하고 후위확장플래그(40)와 확장플래그(30)를 활성화시킨다.
저장부(10)에는 후위데이터확장명령어 뒤에 후위데이터(FDATA)가 저장되어 있으므로, 중앙처리장치는 후위확장플래그가 활성화되어 있으면, 저장부(10)로부터 후위데이터(FDATA)를 가져오고, 확장데이터 생성부(50)는 확장레지스터(20)에 저장되어 있는 확장데이터(EDATA)와 후위데이터(FDATA)를 연산 처리하여 새로운 확장데이터를 생성하여 확장레지스터에 저장하고, 후위확장플래그(40)를 비활성화 시킨다.
상기와 같이 일반명령어에서 사용할 확장데이터를 생성하고, 일반명령어를 저장부(10)로부터 수신하고 디코딩하여 이 일반명령어가 확장데이터(EDATA)를 사용하는 명령어이면 확장플래그(30)를 비활성화 시키고 확장레지스터(20)에 저장되어 있는 확장데이터(EDATA)를 이용하여 일반명령어를 수행한다.
도 4는 본 발명의 제2실시례인 후위데이터에 따른 데이터를 확장하기 위한 후위데이터확장명령어와 확장레지스터의 동작관계를 설명하기 위한 동작도이다.
도 4에 도시된 바와 같이 일반명령어1과 일반명령어2의 수행에 의해 확장레지스터(20,ER)가 비어있는 상태에서 수행되는 후위데이터확장명령어에 의해 디코더(60)는 각각 확장플래그제어신호(EFC)와 후위확장플래그제어신호(FEFC)를 출력하여 확장플래그(30,EF)와 후위확장플래그(40,FEF)를 활성화시킨다. 확장데이터 생성부(50)는 후위데이터확장명령어의 오퍼랜드(FEOPR3)의 부호비트를 확장하여 확장데이터(EDATA)를 생성한 뒤 확장레지스터(20,ER)에 저장한다.후위확장플래그(40,FEF)가 활성화되었으므로 중앙처리장치는 후위데이터확장명령어 다음에 저장되어 있는 후위데이터1(FDATA1)을 페치하고 디코더(60)는 후위데이터1(FDATA1)을 출력하고, 확장데이터 생성부(50)는 후위데이터(FDATA)의 크기만큼 확장레지스터에 저장된 확장데이터(EDATA)를 상위로 이동시키고 후위데이터1(FDATA1)을 더하여 새로운 확장데이터를 생성하여 확장레지스터(20,ER)에 저장하고, 후위확장플래그(40,FEF)를 비활성화시킨다. 중앙처리장치는 후위확장플래그(40,FEF)가 비활성화되었으므로 다음명령어인 일반명령어3를 페치한다. 확장플래그(30,EF)가 활성화되어 있으므로 중앙처리장치는 확장레지스터(20)에 저장되어 있는 확장데이터(EDATA)를 사용하여 일반명령어3를 수행한다. 그리고 확장플래그(30,EF)를 비활성화하여 확장레지스터(20)가 비었음을 나타낸다. 일반명령어3 다음에 수행되는 확장명령어1과 같이 일반명령어가 수행되어 확장레지스터(20,ER)가 비어 있는 상태에서 확장명령어가 페치되면, 디코더(60)의 출력인 확장플래그제어신호(EFC)에 의해 확장플래그(30,EF)는 활성화되고, 확장데이터 생성부(50)는 확장명령어1의 오퍼랜드(EOPR5)의 부호비트를 확장하여 새로운 확장데이터를 생성하고, 새로운 확장데이터를 확장레지스터(20,ER)에 저장한다. 디코더(60)는 후위데이터확장명령어가 페치되면 후위확장플래그제어신호(FEFC)에 의해 후위확장플래그(40,FEF)를 활성화시킨다. 확장데이터 생성부(50)는 확장레지스터(20,ER)에 확장데이터(EDATA)가 저장되어 있어 확장플래그(30)가 활성화된 상태에서 후위데이터확장명령어가 페치되면, 확장레지스터(20,ER)에 저장되어 있는 확장데이터(EDATA)를 후위데이터확장명령어의 오퍼랜드(FEOPR6)의 크기만큼 상위로이동시키고 후위데이터확장명령어의 오퍼랜드(FEOPR6)를 더하여 새로운 확장데이터를 생성하여 확장레지스터(20,ER)에 저장하고, 확장플래그(30,EF)는 활성화된 상태를 계속 유지한다. 후위확장플래그(40,FEF)가 활성화되어 있으므로, 중앙처리장치는 후위데이터2(FDATA2)를 페치하고, 확장데이터 생성부(50)는 확장레지스터(20,ER)에 저장되어 있는 확장데이터(EDATA)를 후위데이터2(FDATA2)의 크기만큼 상위로 이동시키고 후위데이터2(FDATA2)를 더하여 새로운 확장데이터를 생성하여 확장레지스터(20,ER)에 저장하고, 확장플래그(30,EF)는 활성화된 상태를 유지하며, 후위확장플래그(40,FEF)를 비활성화시킨다. 후위확장플래그(40,FEF)가 비활성화되었으므로 중앙처리장치는 다음 명령어인 일반명령어4를 페치하여 수행한다. 중앙처리장치는 확장플래그(30,EF)가 활성화되어 있으므로, 확장레지스터(20,ER)에 저장되어 있는 확장데이터(EDATA)를 일반명령어4가 수행되는데 사용하고 확장플래그(30,EF)를 비활성화시킨다.
따라서 본 발명의 중앙처리장치는 확장명령어, 후위데이터확장명령어, 명령어의 비트수와 동일한 크기의 후위데이터(FDATA)를 사용하여 확장레지스터에 보다 큰 확장데이터를 만들어 저장할 수 있으므로 종래의 후위데이터를 사용하지 않은 확장명령어에 비해 명령어의 개수를 줄일 수 있다.
도 6은 후위데이터에 따른 명령어를 확장하기 위한 명령어인 후위코드확장명령어와 확장레지스터의 동작관계를 설명하기 위한 동작도 이다.
도 5 및 도 6에 도시된 본 발명의 다른 실시례의 중앙처리장치는 저장부(100)에 저장된 명령어의 크기가 동일한 일반명령어, 후위코드확장명령어 및후위코드확장명령어 다음의 위치에 저장되어 후위코드확장명령어 수행 후 다음에 페치되는 후위데이터(FDATA)에 의해 일반명령어의 비트수 보다 큰 새로운 명령어를 생성하기 위한 것으로, 중앙처리장치가 저장부(100)로부터 페치한 명령어가 후위코드확장명령어이면 후위명령어 생성부(500)는 후위코드확장명령어의 오퍼랜드필드의 오퍼랜드(FEOPR)를 확장레지스터(200)에 저장하고, 디코더(400)는 후위코드확장플래그제어신호(FIEFC)에 의해 후위코드확장플래그(300,FIEF)를 활성화시킨다. 후위코드확장플래그(300,FIEF)가 활성화되어 있으면, 중앙처리장치는 다음 명령어인 후위데이터(FDATA)를 페치하고, 후위데이터 생성부(500)는 확장레지스터(200)에 저장된 확장데이터(EDATA)와 연산처리하여 일반명령어의 비트수 보다 큰 새로운 명령어인 후위명령어(FINS)를 생성하고, 후위코드확장플래그(300,FIEF)를 비활성화시킨다. 디코더(500)는 후위명령어(FINS)를 디코딩하여 연산처리부(600)에 의해 해당되는 특정 연산을 수행한다. 후위명령어(FINS)를 생성하는 방법은 확장데이터(EDATA)를 후위데이터(FDATA)의 크기만큼 상위로 이동시켜 후위코드확장명령어의 후위데이터(FDATA)를 더하거나 후위데이터(FDATA)를 확장데이터(EDATA)의 크기만큼 상위로 이동시켜 확장데이터(EDATA)를 더하는 방법이 있다.
따라서 상기와 같은 방법에 의해 확장레지스터(200)에 저장된 확장데이터(EDATA)와 후위데이터(FDATA)를 연산처리하여 연산처리된 후위명령어(FINS)를 일반명령어의 비트수 보다 큰 새로운 명령어로 사용하여 다수의 일반명령어들의 집합에 의해 수행될 수 있는 명령어를 실행할 수 있으므로 프로그램의 크기를 줄일 수 있다.
본 발명의 중앙처리장치는 고정길이 명령어를 사용하는 경우에 확장명령어, 후위데이터확장명령어, 후위데이터를 사용함으로써 확장레지스터에 저장되는 확장데이터의 크기를 원하는 크기 만들어 주어 작은 길이의 명령어를 효율적으로 사용할 수 있게 해주며, 이로 인해 프로그램의 크기를 줄일 수 있고, 후위코드확장명령어와 후위데이터를 사용함으로써 일반명령어의 비트수 보다 큰 새로운 명령어인 후위명령어를 실행할 수 있다.

Claims (13)

  1. 연산코드와 오퍼랜드가 저장된 오퍼랜드 필드로 구성된 다수의 명령어들의 집합으로 이루어진 프로그램을 실행하기 위해 명령어들을 페치하여 페치된 명령어를 디코딩하여 다수의 제어신호들을 출력하는 디코더, 다수의 일반 레지스터로 구성된 레지스터 파일, 디코더부의 제어신호 따라 명령어에서 지정하는 레지스터에 저장된 데이터에 대해 연산 처리하여 페치된 명령어를 실행하는 연산처리부로 구성된 중앙처리장치에 있어서,
    명령어의 크기가 동일한 일반명령어, 일반명령어 보다 큰 데이터를 생성하기 위한 명령어인 확장명령어 및 확장명령어 다음에 저장되어 일반명령어 실행에 따른 연산처리시 데이터를 확장시키기 위한 후위데이터를 저장하는 저장수단;
    상기 확장명령어의 실행에 따라 상기 일반명령어의 크기보다 큰 데이터인 확장데이터를 저장하는 확장레지스터;
    상기 확장명령어가 페치될 때 상기 디코더에 의해 활성화되어 상기 확장명령어의 실행 유무를 나타내는 확장플래그;
    상기 확장명령어의 오퍼랜드의 특정 비트의 활성화 상태에 따라 확장명령어의 페치시 상기 디코더에 의해 활성화되는 후위확장플래그; 및
    상기 확장명령어의 실행을 위해 상기 페치된 확장명령어에 따라 확장플래그가 활성화되어 있지 않으면 확장명령어의 오퍼랜드를 확장레지스터에 저장하고 확장플래그가 활성화되어 있으면, 확장레지스터에 저장되어 있는 확장데이터와 확장명령어의 오퍼랜드를 연산처리하여 연산처리된 결과를 확장레지스터에 저장하고, 상기 후위확장플래그가 활성화되면 상기 저장수단에 저장된 후위데이터를 페치하고, 상기 확장레지스터에 저장된 확장데이터와 상기 후위데이터를 연산처리하여 새로운 확장데이터를 생성시켜 생성된 확장데이터를 상기 확장레지스터에 저장하고, 상기 후위확장플래그를 비활성화시키는 확장데이터 생성수단을 구비하여 확장명령어 다음의 일반명령어 실행시 상기 일반명령어의 오퍼랜드와 상기 확장레지스터에 저장된 확장데이터를 연산처리하여 연산처리한 결과를 상기 일반명령어의 오퍼랜드로 사용하고, 상기 확장플래그를 비활성화시키는 것을 특징으로 하는 중앙처리장치.
  2. 제 1 항에 있어서, 상기 확장데이터 생성수단에서 상기 확장레지스터에 저장된 확장데이터와 상기 후위데이터의 연산처리는 상기 확장레지스터에 저장된 확장데이터를 상기 후위데이터의 비트수 만큼 좌측으로 쉬프트시킨 후 쉬프트된 확장데이터와 상기 후위데이트를 가산하는 것을 특징으로 하는 중앙처리장치.
  3. 제 1 항에 있어서, 상기 확장명령어의 오퍼랜드를 확장레지스터에 저장할 때 상기 확장명령어의 오퍼랜드의 부호비트를 확장시켜 확장레지스터에 저장하는 것은 특징으로 하는 중앙처리장치.
  4. 제 1 항에 있어서, 상기 확장데이터 생성수단에서 상기 확장레지스터에 저장된 확장데이터와 상기 후위데이터의 연산처리는 상기 후위데이터를 상기 확장레지스터에 저장된 확장데이터의 비트수 만큼 좌측으로 쉬프트시킨 후 쉬프트된 후위데이터와 상기 확장데이터를 가산하는 것을 특징으로 하는 중앙처리장치.
  5. 제 4 항에 있어서, 상기 후위데이터를 상기 확장레지스터에 저장된 확장데이터의 비트수 만큼 좌측으로 쉬프트시킬 때 상기 후위데이터의 부호비트를 확장시켜 쉬프트시키는 것을 특징으로 하는 중앙처리장치.
  6. 연산코드와 오퍼랜드가 저장된 오퍼랜드 필드로 구성된 다수의 명령어들의 집합으로 이루어진 프로그램을 실행하기 위해 명령어들을 페치하여 페치된 명령어를 디코딩하여 다수의 제어신호들을 출력하는 디코더, 다수의 일반 레지스터로 구성된 레지스터 파일, 디코더부의 제어신호 따라 명령어에서 지정하는 레지스터에 저장된 데이터에 대해 연산 처리하여 페치된 명령어를 실행하는 연산처리부로 구성된 중앙처리장치에 있어서,
    명령어의 크기가 동일한 일반명령어, 일반명령어 보다 큰 데이터를 생성하기 위한 명령어인 확장명령어와 후위데이터확장명령어 및 후위데이터확장명령어 다음에 저장되어 일반명령어 실행에 따른 연산처리시 데이터를 확장시키기 위한 후위데이터를 저장하는 저장수단;
    상기 확장명령어 또는 후위데이터확장명령어의 실행에 따라 상기 일반명령어의 크기보다 큰 데이터인 확장데이터를 저장하는 확장레지스터;
    상기 후위데이터확장명령어가 페치될 때 상기 디코더에 의해 활성화되어 상기 후위데이터확장명령어의 실행 유무를 나타내는 후위확장플래그;
    상기 확장명령어가 페치되거나 상기 후위데이터확장명령어 실행전에 확장명령어가 실행되지 않았으면 후위데이터확장명령어가 페치될 때 상기 디코더에 의해 활성화되어 상기 확장레지스터에 확장데이터가 저장되어있음을 나타내는 확장플래그; 및
    상기 후위데이터확장명령어의 실행을 위해 상기 페치된 후위데이터확장명령어에 따라 상기 확장플래그가 비활성화되어 있으면 상기 후위데이터확장명령어의 오퍼랜드를 상기 확장레지스터에 저장하고, 상기 확장플래그가 활성화되어 있으면 상기 후위데이터확장명령어의 오퍼랜드와 상기 확장명령어에 의해 확장레지스터에 기정된 확장데이터와 연산처리하여 연산처리된 결과를 상기 확장레지스터에 저장하고, 상기 후위확장플래그가 활성화되어 있으면 상기 저장수단에 저장된 후위데이터를 페치하여 상기 확장레지스터에 저장된 확장데이터와 상기 페치된 후위데이터를 연산처리하여 새로운 확장데이터를 생성시켜 생성된 확장데이터를 상기 확장레지스터에 저장하고, 상기 후위확장플래그를 비활성화시키는 확장데이터 생성수단을 구비하여 상기 후위데이터확장명령어 다음의 일반명령어 실행시 상기 일반명령어의 오퍼랜드와 상기 확장레지스터에 저장된 확장데이터를 연산처리하여 연산처리한 결과를 상기 일반명령어의 오퍼랜드로 사용하고, 상기 확장플래그를 비활성화시키는 것을 특징으로 하는 중앙처리장치.
  7. 제 6 항에 있어서, 상기 확장데이터 생성수단에서 상기 확장레지스터에 저장된 확장데이터와 상기 후위데이터의 연산처리는 상기 확장레지스터에 저장된 확장데이터를 상기 후위데이터의 비트수 만큼 좌측으로 쉬프트시킨 후 쉬프트된 확장데이터와 상기 후위데이트를 가산하는 것을 특징으로 하는 중앙처리장치.
  8. 제 6 항에 있어서, 상기 후위확장명령어의 오퍼랜드를 확장레지스터에 저장할 때 상기 후위확장명령어의 오퍼랜드의 부호비트를 확장시켜 확장레지스터에 저장하는 것은 특징으로 하는 중앙처리장치.
  9. 제 6 항에 있어서, 상기 확장데이터 생성수단에서 상기 확장레지스터에 저장된 확장데이터와 상기 후위데이터의 연산처리는 상기 후위데이터를 상기 확장레지스터에 저장된 확장데이터의 비트수 만큼 좌측으로 쉬프트시킨 후 쉬프트된 후위데이터와 상기 확장데이터를 가산하는 것을 특징으로 하는 중앙처리장치.
  10. 제 9 항에 있어서, 상기 후위데이터를 상기 확장레지스터에 저장된 확장데이터의 비트수 만큼 좌측으로 쉬프트시킬 때 상기 후위데이터의 부호비트를 확장시켜 쉬프트시키는 것을 특징으로 하는 중앙처리장치.
  11. 연산코드와 오퍼랜드가 저장된 오퍼랜드 필드로 구성된 다수의 명령어들의 집합으로 이루어진 프로그램을 실행하기 위해 명령어들을 페치하여 페치된 명령어를 디코딩하여 다수의 제어신호들을 출력하는 디코더, 다수의 일반 레지스터로 구성된 레지스터 파일, 디코더부의 제어신호 따라 명령어에서 지정하는 레지스터에 저장된 데이터에 대해 연산 처리하여 페치된 명령어를 실행하는 연산처리부로 구성된 중앙처리장치에 있어서,
    명령어의 크기가 동일한 일반명령어, 일반명령어의 연산코드의 비트수 보다 큰 연산코드를 가진 명령어를 생성하기 위한 후위코드확장명령어 및 후위코드확장명령어 다음의 위치에 저장되어 후위코드확장명령어 수행 후 다음에 페치되는 후위데이터를 저장하는 저장수단;
    상기 후위코드확장명령어의 실행에 따라 상기 후위코드확장명령어의 오퍼랜드를 저장하는 확장레지스터;
    상기 후위코드확장명령어가 페치될 때 상기 디코더에 의해 활성화되어 상기 후위코드확장명령어의 실행 유무를 나타내는 후위코드확장플래그; 및
    상기 후위코드확장플래그가 활성화되면 상기 저장수단에 저장된 후위데이터를 페치하여 상기 확장레지스터에 저장된 확장데이터와 상기 후위데이터를 연산처리하여 후위명령어를 상기 디코더로 출력시키고, 상기 후위코드확장플래그를 비활성화시키는 후위명령어 생성수단을 구비한 것을 특징으로 하는 중앙처리장치.
  12. 제 11 항에 있어서, 상기 후위명령어 생산수단에서 상기 확장레지스터에 저장된 확장데이터와 상기 후위데이터의 연산처리는 상기 확장데이터를 상기 후위데이터의 비트수 만큼 좌측으로 쉬프트시킨 후 쉬프트된 확장데이터와 상기 후위데이트를 가산하는 것을 특징으로 하는 중앙처리장치.
  13. 제 11 항에 있어서, 상기 후위명령어 생산수단에서 상기 확장데이터와 상기 후위데이터의 연산처리는 상기 후위데이터를 상기 확장데이터어의 비트수 만큼 좌측으로 쉬프트시킨 후 쉬프트된 후위데이터와 상기 확장데이터를 가산하는 것을 특징으로 하는 중앙처리장치.
KR1020020037758A 2002-06-29 2002-06-29 중앙처리장치 KR20040002305A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020037758A KR20040002305A (ko) 2002-06-29 2002-06-29 중앙처리장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020037758A KR20040002305A (ko) 2002-06-29 2002-06-29 중앙처리장치

Publications (1)

Publication Number Publication Date
KR20040002305A true KR20040002305A (ko) 2004-01-07

Family

ID=37314007

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020037758A KR20040002305A (ko) 2002-06-29 2002-06-29 중앙처리장치

Country Status (1)

Country Link
KR (1) KR20040002305A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100781340B1 (ko) * 2006-09-18 2007-11-30 삼성전자주식회사 사용자 정의 확장 연산을 처리하는 연산 시스템 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0489266A2 (en) * 1990-11-07 1992-06-10 Kabushiki Kaisha Toshiba Computer and method for performing immediate calculation by utilizing the computer
US5423012A (en) * 1991-12-10 1995-06-06 Mitsubishi Denki Kabushiki Kaisha Apparatus and method in a computer for executing calculation instructions and data instructions having uniform word lengths
JPH09231070A (ja) * 1995-12-20 1997-09-05 Seiko Epson Corp 情報処理回路、半導体集積回路装置、マイクロコンピュータ、電子機器
KR19990046279A (ko) * 1999-01-30 1999-07-05 권기홍 중앙처리장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0489266A2 (en) * 1990-11-07 1992-06-10 Kabushiki Kaisha Toshiba Computer and method for performing immediate calculation by utilizing the computer
US5423012A (en) * 1991-12-10 1995-06-06 Mitsubishi Denki Kabushiki Kaisha Apparatus and method in a computer for executing calculation instructions and data instructions having uniform word lengths
JPH09231070A (ja) * 1995-12-20 1997-09-05 Seiko Epson Corp 情報処理回路、半導体集積回路装置、マイクロコンピュータ、電子機器
KR19990046279A (ko) * 1999-01-30 1999-07-05 권기홍 중앙처리장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100781340B1 (ko) * 2006-09-18 2007-11-30 삼성전자주식회사 사용자 정의 확장 연산을 처리하는 연산 시스템 및 방법

Similar Documents

Publication Publication Date Title
JP4484925B2 (ja) Simdデバイスにおける制御フロー管理のための方法及び装置
JP5501338B2 (ja) X86の仮想機をサポートするriscプロセッサ装置及び方法
JP3811427B2 (ja) ループバッファを利用したループ命令の処理方法を備えるデータ処理装置。
US6189090B1 (en) Digital signal processor with variable width instructions
KR100423910B1 (ko) 코프로세서 명령 실행 장치 및 방법
JPH03218523A (ja) データプロセッサ
US20020198606A1 (en) Data processing system and control method
US6631459B1 (en) Extended instruction word folding apparatus
JP6807073B2 (ja) 高速ベクトルによる動的なメモリ競合検出
US7797519B2 (en) Processor apparatus with instruction set for storing comparison conditions and for evaluating branch condition values against results of identified complex comparison conditions
US5966514A (en) Microprocessor for supporting reduction of program codes in size
CN107851022B (zh) 向量长度查询指令
US20080270759A1 (en) Computer Having Dynamically-Changeable Instruction Set in Real Time
KR20160113220A (ko) 마스킹된 결과 요소들로의 전파를 이용하여 연속 소스 요소들을 마스킹되지 않은 결과 요소들에 저장하기 위한 프로세서, 방법, 시스템 및 명령어
KR20040002305A (ko) 중앙처리장치
JP5233078B2 (ja) プロセッサ及びその処理方法
JP2006053830A (ja) 分岐予測装置および分岐予測方法
JP2006072961A (ja) 演算処理装置のメモリ回路
US20150095616A1 (en) Data processor
JP2002024008A (ja) データ処理装置およびプログラム変換装置
US5155818A (en) Unconditional wide branch instruction acceleration
KR900010552A (ko) 명령을 페치(fetch)하기 위한 제어 시스템
US6308262B1 (en) System and method for efficient processing of instructions using control unit to select operations
JP2024022371A (ja) ジャンプ命令に基づくパイプライン処理を制御するプロセッサ及びプログラム
WO2005036384A2 (en) Instruction encoding for vliw processors

Legal Events

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