KR20050041565A - 시스크 프로세서의 디코딩 장치 - Google Patents

시스크 프로세서의 디코딩 장치 Download PDF

Info

Publication number
KR20050041565A
KR20050041565A KR1020030076774A KR20030076774A KR20050041565A KR 20050041565 A KR20050041565 A KR 20050041565A KR 1020030076774 A KR1020030076774 A KR 1020030076774A KR 20030076774 A KR20030076774 A KR 20030076774A KR 20050041565 A KR20050041565 A KR 20050041565A
Authority
KR
South Korea
Prior art keywords
rom
command
information
logic operation
configuration information
Prior art date
Application number
KR1020030076774A
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 KR1020030076774A priority Critical patent/KR20050041565A/ko
Publication of KR20050041565A publication Critical patent/KR20050041565A/ko

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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT

Landscapes

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

Abstract

본 발명은 시스크 프로세서의 디코딩 장치에 관한 것으로써, 특히 시스크 프로세서(Complex Instruction Set Computer processor)에서 논리연산 구성정보만을 위한 별도의 롬을 구비하여 마이크로롬의 크기를 줄일 수 있는 기술이다. 이를 위해 본 발명은 명령 레지스터로부터 인가되는 명령신호를 매핑하여 해당 명령신호의 시작주소를 출력하는 매핑 롬과, 시작주소에 대응되는 명령정보를 디코딩하여 해당하는 상기 명령정보에 대한 동작이 할당되어 있는 필드의 위치를 설정하고, 기설정된 상기 명령정보의 필드 유형에 따라 최소한 둘 이상으로 구분되는 출력 경로들을 통해 상기 명령정보를 출력하는 마이크로롬과, 명령정보의 필드 중 논리연산 구성정보를 저장하는 논리연산롬과, 마이크로롬, 논리연산롬으로부터 출력되는 정보들을 저장하는 복수개의 플립플롭과, 복수개의 플립플롭으로부터 인가되는 상기 논리연산 구성정보에 따라 논리 연산을 수행하는 논리 연산부를 구비함을 특징으로 한다.

Description

시스크 프로세서의 디코딩 장치{Decoding device of complex instruction set computer processor}
본 발명은 시스크 프로세서의 디코딩 장치에 관한 것으로써, 특히 시스크 프로세서(Complex Instruction Set Computer processor)에서 논리연산 구성정보만을 위한 별도의 롬을 구비하여, 마이크로롬의 크기를 줄일 수 있는 기술이다.
일반적으로 시스크(CISC;Complex Instruction Set Computer) 프로세서는 인스트럭션(Instruction)의 길이가 일정치 않은 프로그램을 처리한다.
도 1은 이러한 종래의 시스크 프로세서의 디코딩 장치에 관한 구성도이다.
종래의 디코딩 장치는 명령(Instruction) 레지스터(2), 매핑(Mapping) 롬(4), μ-ROM(6), 플립플롭(flip-flop;8), 레지스터(10), 및 논리연산부(ALU;Arithmetic and Logic Unit;12) 를 구비한다.
여기서, 매핑 롬(4)은 명령 레지스터(2)로부터 명령신호를 매핑하여 해당 명령 레지스터에 해당하는 μ-ROM(6)의 시작주소를 μ-ROM(6)에 출력한다. 그리고, μ-ROM(6)은 μ-코드를 저장하고 μ(micro) 단위를 가지며 매핑 롬(4)으로부터 해당 명령신호에 대한 시작주소가 인가되면 μ(micro)-프로그램을 실행하여 입력된 명령신호를 디코딩하고 해당 명령신호에 대한 동작이 할당되어 있는 위치를 지정한다.
또한, 플립플롭(8)은 프로세서의 성능 향상을 위하여 μ-ROM(6)에 저장된 정보를 모두 저장한다. 레지스터(10)는 μ-ROM(6)으로부터 인가되는 정보와 논리연산부(12)로부터 인가되는 정보를 래치하여 저장한다. 논리연산부(12)는 플립플롭(8)으로부터 인가되는 정보를 논리연산하고, 레지스터(10)에 저장한다.
이상에서와 같이 μ-ROM(6)에 저장되어 있는 μ-코드들은 논리연산(ALU) 구성에 대한 필드 등을 제외하고 대부분 서로 유사한 형태의 필드를 가진다. 그런데, 종래의 디코딩 장치는 이러한 특성을 고려하지 않고 유사한 형태의 필드를 가지더라도 모두 개별적으로 μ-프로그램을 작성하여 많은 영역의 μ-ROM을 필요로 하였다. 그에 따라 프로세서의 전체적인 크기가 커지게 되는 문제점이 있다.
즉, 논리연산 구성만 다르고 어드레스 모드, 레지스터의 내용 등 μ-ROM의 필드내용들이 동일한 경우에도 각기 다른 μ-코드를 사용함으로써, μ-ROM의 크기가 커지는 문제점이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 창출된 것으로, 명령신호를 수행 시에 논리연산(ALU) 구성정보만을 저장한 별도의 롬을 통해 논리연산을 수행하여 마이크로롬(μ-ROM)의 크기를 줄임으로써 전체적인 프로세서의 크기를 줄일 수 있도록 하는데 그 목적이 있다.
상기한 목적을 달성하기 위한 본 발명은 명령 레지스터로부터 인가되는 명령신호를 매핑하여 해당 명령신호의 시작주소를 출력하는 매핑 롬;
상기 시작주소에 대응되는 명령정보를 디코딩하여 해당하는 상기 명령정보에 대한 동작이 할당되어 있는 필드의 위치를 설정하고, 기설정된 상기 명령정보의 필드 유형에 따라 최소한 둘 이상으로 구분되는 출력 경로들을 통해 상기 명령정보를 출력하는 마이크로롬;
상기 명령정보의 필드 중 논리연산 구성정보를 저장하는 논리연산롬;
상기 마이크로롬, 논리연산롬으로부터 출력되는 정보들을 저장하는 복수개의 플립플롭; 및
상기 복수개의 플립플롭으로부터 인가되는 상기 논리연산 구성정보에 따라 논리 연산을 수행하는 논리 연산부를 구비하는 것을 특징으로 한다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명하고자 한다.
도 2는 본 발명에 따른 시스크 프로세서의 디코딩 장치에 관한 구성도이다.
본 발명은 명령(Instruction) 레지스터(20), 매핑(Mapping) 롬(22), 마이크로롬(이하, μ-ROM라 함 ;24), 논리연산롬(이하, Al_ROM라 함 ;26), 논리연산롬(이하, ALE_ROM라 함; 28), 플립플롭(30, 32, 34), 멀티플렉서(36), 논리 연산부(ALU;Arithmetic and Logic Unit;38) 및 레지스터(40)를 포함한다.
여기서, 명령 레지스터(20)는 입력되는 명령신호들을 래치한다. 그리고, 매핑 롬(22)은 μ(micro) 단위를 가지며, 명령 레지스터(20)로부터 인가되는 명령신호를 매핑하여 해당 명령신호의 시작주소를 μ-ROM(24)에 출력한다.
또한, μ-ROM(24)은 명령 실행을 위한 μ-코드를 저장하고 레지스터(40)에 대한 멀티플렉서 제어신호 및 라이트 인에이블 신호 등을 제어한다. μ-ROM(24)은 매핑 롬(22)으로부터 해당 명령신호에 대한 시작주소가 인가되면 u(micro)-프로그램을 실행하여 입력된 명령신호를 디코딩하고 해당 명령신호에 대한 동작이 할당되어 있는 위치를 지정한다.
예를 들어, 명령 레지스터(20)로부터 인가되는 명령신호가 "1000 0000"의 8비트 신호일 경우 매핑 롬(22)은 8비트의 명령신호가 어드레스 명령임을 인식하고 어드레스 명령에 대한 시작주소를 μ-ROM(24)에 출력한다. μ-ROM(24)은 어드레스 명령에 대한 시작주소를 인식하여 해당하는 어드레스 명령에 따른 동작이 할당되어 있는 어드레스를 발생시킨다.
AL_ROM(26)은 명령어에 따른 ALU 구성정보를 저장한다. 예를들어, ADD S0, S1, D 라는 명령과 SUB S0, S1, D라는 명령어가 입력된 경우, ADD 논리연산 구성정보는 μ-ROM(24)에 저장하고, SUB 논리연산 구성정보는 AL_ROM(26)에 저장하여 논리연산시 μ-ROM(24)과 AL_ROM(26)에서 논리연산 구성정보를 각각 가져와 이용한다.
ALE_ROM(28)은 논리연산이 여러 개인 경우 AL_ROM(26)만으로 부족할 경우에 추가적으로 구성된다. 즉, 명령어가 여러개 일 때, 하나의 논리연산 구성정보를 AL_ROM(26)에 저장 후, 다른 나머지 논리연산 구성정보는 ALD_ROM(28)에 저장한다. 따라서, ALE_ROM(28)은 명령어의 수에 따라 복수개를 구비하여 μ-ROM(24)의 크기를 줄일 수 있습니다.
플립플롭(30, 32, 34)은 각각 μ-ROM(24), AL_ROM(26), 및 ALE_ROM(28)의 모든 데이터를 저장한다. 그리고, 멀티플렉서(36)는 플립플롭(30, 32, 34)으로부터 인가되는 ALU(38)의 구성 정보를 멀티플렉싱하여 ALU(38)에 출력하고, μ-ROM(24)으로부터 인가되는 정보를 멀티플렉싱한다. 레지스터(40)는 μ-ROM(24)으로부터 인가되는 정보를 래치하여 저장한다.
이러한 구성을 갖는 본 발명은 현재 클럭의 천이에 따라 레지스터들에 저장된 값이 변경되고, 다음에 입력되는 클럭에서는 현재 클럭에 의해 설정된 ALU(38)의 구성에 따라 연산이 수행된다.
이러한 구성을 갖는 디코딩 장치의 동작을 설명하기위해 아래와 같은 예를 들기로 한다. 예를 들어, ADD! abs 와 SUB! abs 두 명령신호가 있다고 가정한다.
매핑롬(22)이 명령레지스터(20)로부터 명령신호를 수신하여 매핑하여 해당 명령레지스터에 해당하는 μ-ROM(24)의 시작주소를 출력한다. μ-ROM(24)은 상기 명령신호에 해당하는 μ-코드를 저장한다.
이때, 명령신호 ADD! abs는 절대번지에 저장된 오퍼랜드(operand)와 A 레지스터의 값을 읽고 더한 후, 다시 A 레지스터에 저장하라는 명령이다. SUB! abs는 절대번지에 저장된 오퍼랜드와 A 레지스터의 값을 읽고 뺀 후, 다시 A 레지스터에 저장하라는 명령이다.이 두 명령신호(ADD! abs, SUB! abs)는 논리연산부(ALU)에서 더하기와 빼기만 다를 뿐, 유사한 특성을 갖는다.
μ-ROM(24)은 명령신호 ADD! abs 와 SUB! abs의 어드레스 정보 등을 가지는 μ-코드를 저장하고, AL_ROM(26) 또는 ALE_ROM(28)은 명령신호 ADD! abs 와 SUB! abs의의 논리연산 구성정보를 가지는 μ-코드를 저장한다.
따라서, 명령신호(ADD! abs, SUB! abs)의 μ-코드는 모두 절대번지에 저장되어 있는 오퍼랜드를 패치(fetch)하고, 패치된 값과 A 레지스터의 값을 ALU(38)로 보낸다. 그 후, ALU(38)는 μ-ROM(24)으로부터 전송받은 A 레지스터의 값을 AL_ROM(26) 또는 ALE_ROM(28)을 통해서 수신한 논리연산 구성정보에 의해 논리연산을 수행한 후, 그 결과를 A 레지스터에 보내어 저장하도록 한다.
이처럼 논리연산 구성정보를 위한 별도의 AL_ROM(26) 및 ALE_ROM(28)을 구비하여, 논리연산 구성정보만 다른 두 개의 μ-코드를 할당받는 경우, μ-코드의 동일 필드는 μ-ROM(24)을 이용하고, 논리연산 구성정보는 AL_ROM(26) 및 ALE_ROM(28)를 통해 별도로 처리함으로써, μ-ROM(24)의 할당 크기가 작아질 수 있다. 이때, AL_ROM(26) 및 ALE_ROM(28)은 로직(logic)으로 구성하게 되면 리던던시(redundancy)가 많으므로 전체적인 로직의 크기를 줄일 수 있다.
이상에서 설명한 바와 같이, 본 발명은 명령신호의 논리연산 구성정보를 별도로 저장하는 롬을 구비하여 μ-ROM의 할당영역을 줄임으로써, 전체적인 프로세서의 크기를 줄일 수 있도록 하는 효과를 제공한다.
아울러 본 발명의 바람직한 실시예는 예시의 목적을 위한 것으로, 당업자라면 첨부된 특허청구범위의 기술적 사상과 범위를 통해 다양한 수정, 변경, 대체 및 부가가 가능할 것이며, 이러한 수정 변경 등은 이하의 특허청구범위에 속하는 것으로 보아야 할 것이다.
도 1은 종래의 디코딩 장치를 나타내는 구성도.
도 2는 본 발명에 따른 시스크 프로세서의 디코딩 장치의 구성도.

Claims (5)

  1. 명령 레지스터로부터 인가되는 명령신호를 매핑하여 해당 명령신호의 시작주소를 출력하는 매핑 롬;
    상기 시작주소에 대응되는 명령정보를 디코딩하여 해당하는 상기 명령정보에 대한 동작이 할당되어 있는 필드의 위치를 설정하고, 기설정된 상기 명령정보의 필드 유형에 따라 최소한 둘 이상으로 구분되는 출력 경로들을 통해 상기 명령정보를 출력하는 마이크로롬;
    상기 명령정보의 필드 중 논리연산 구성정보를 저장하는 논리연산롬;
    상기 마이크로롬, 논리연산롬으로부터 출력되는 정보들을 저장하는 복수개의 플립플롭; 및
    상기 복수개의 플립플롭으로부터 인가되는 상기 논리연산 구성정보에 따라 논리 연산을 수행하는 논리 연산부
    를 구비함을 특징으로 하는 시스크 프로세서의 디코딩 장치.
  2. 제 1항에 있어서,
    상기 마이크로롬 및 상기 논리연산롬으로부터 인가되는 정보를 멀티플렉싱하여 선택하여 출력하는 멀티플렉서; 및
    상기 마이크로롬으로부터 인가되는 라이트 인에이블 신호를 래치하고, 상기 논리연산부의 출력을 래치하는 레지스터를 더 구비함을 특징으로 하는 시스크 프로세서의 디코딩 장치.
  3. 제 1항에 있어서,
    상기 논리연산롬은 상기 명령정보의 필드 중 논리연산 구성정보의 수에 따라 그 수가 결정됨을 특징으로 하는 시스크 프로세서의 디코딩 장치.
  4. 제 1항에 있어서, 상기 플립플롭은 상기 논리연산롬의 개수에 따라 그 개수가 결정됨을 특징으로 하는 시스크 프로세서의 디코딩 장치.
  5. 제 1항에 있어서, 상기 마이크로롬에 저장된 정보들의 필드는 상기 논리 연산에 관한 구성 정보, 레지스터들에 대한 멀티플렉서 제어신호 및 라이트 인에이블 신호임을 특징으로 하는 시스크 프로세서의 디코딩 장치.
KR1020030076774A 2003-10-31 2003-10-31 시스크 프로세서의 디코딩 장치 KR20050041565A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030076774A KR20050041565A (ko) 2003-10-31 2003-10-31 시스크 프로세서의 디코딩 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030076774A KR20050041565A (ko) 2003-10-31 2003-10-31 시스크 프로세서의 디코딩 장치

Publications (1)

Publication Number Publication Date
KR20050041565A true KR20050041565A (ko) 2005-05-04

Family

ID=37243028

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030076774A KR20050041565A (ko) 2003-10-31 2003-10-31 시스크 프로세서의 디코딩 장치

Country Status (1)

Country Link
KR (1) KR20050041565A (ko)

Similar Documents

Publication Publication Date Title
US9003422B2 (en) Microprocessor architecture having extendible logic
US7287152B2 (en) Conditional execution per lane
US7069423B2 (en) Microcomputer
US7487338B2 (en) Data processor for modifying and executing operation of instruction code according to the indication of other instruction code
JP2816248B2 (ja) データプロセッサ
EP0220684A2 (en) Data processing system
US11307855B2 (en) Register-provided-opcode instruction
US4954943A (en) Data processing system
EP1267258A2 (en) Setting up predicates in a processor with multiple data paths
EP1267255A2 (en) Conditional branch execution in a processor with multiple data paths
JP2006527435A (ja) 複数の命令セットを有するデータ処理装置内における命令エンコード
EP1143333B1 (en) Microprocessor for supporting reduction of program codes in size
KR19980069845A (ko) 데이터 처리장치
KR100867564B1 (ko) 프로그램 제어 흐름에서 변경들을 이루기 위한 장치 및 방법
US9983872B2 (en) Conditional selection of data elements
KR20050041565A (ko) 시스크 프로세서의 디코딩 장치
JP2006053830A (ja) 分岐予測装置および分岐予測方法
JP2000284962A (ja) マイクロコンピュータ
US5649229A (en) Pipeline data processor with arithmetic/logic unit capable of performing different kinds of calculations in a pipeline stage
US5463747A (en) Microprogram data processor processing operand address calculation and instruction execution with common hardware
JPH06149563A (ja) データ処理装置
JP2004005738A5 (ko)
KR0164150B1 (ko) 씨이크형 마이크로프로세서를 위한 예외 처리 루틴 결정 방법
JP3060917B2 (ja) プロセッサ
KR20050009046A (ko) 시스크 프로세서의 디코딩 장치

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITB Written withdrawal of application