KR101084728B1 - 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서 - Google Patents

동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서 Download PDF

Info

Publication number
KR101084728B1
KR101084728B1 KR1020090131249A KR20090131249A KR101084728B1 KR 101084728 B1 KR101084728 B1 KR 101084728B1 KR 1020090131249 A KR1020090131249 A KR 1020090131249A KR 20090131249 A KR20090131249 A KR 20090131249A KR 101084728 B1 KR101084728 B1 KR 101084728B1
Authority
KR
South Korea
Prior art keywords
implicit
value
instruction
bit
dynamic
Prior art date
Application number
KR1020090131249A
Other languages
English (en)
Other versions
KR20110074323A (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 KR1020090131249A priority Critical patent/KR101084728B1/ko
Publication of KR20110074323A publication Critical patent/KR20110074323A/ko
Application granted granted Critical
Publication of KR101084728B1 publication Critical patent/KR101084728B1/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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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
    • 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

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

본 발명은 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서에 관한 것으로서, 더욱 상세하게는 연산자(op-code), 오퍼랜드(operand), 및 1 비트의 암시 비트로 구분된 포맷의 명령어를 이용하는 파이프라인 방식의 프로세서로서, 명령어 메모리에서 페치(fetch)된 페치 명령어로부터 암시 비트의 온 여부를 검출하는 암시 비트 검출부; 암시 비트가 온된 경우, 동적 카운터가 지시하는 위치에 저장되어 있는 암시값을 독출하는 암시값 참조부; 및 상기 검출부와 상기 암시값 참조부의 후단에 삽입되며, 상기 페치 명령어의 연산자와 오퍼랜드 및 상기 독출된 암시값을 디코딩부로 전달하는 파이프를 포함하는 것을 특징으로 한다.
본 발명에 의하면, 전용 어드레싱 모드에 의존하지 않고도 인코딩 공간을 증가시킬 수 있으며, 이종 레지스터 아키텍쳐를 채용하지 않아 명령어 집합 구조의 직교성을 유지할 수 있으며, 기존 아키텍쳐보다 성능이 더욱 향상된, 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서를 제공할 수 있다.

Description

동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서{Pocessor supporting dynamic implied adressing mode}
본 발명은 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서에 관한 것으로서, 더욱 상세하게는 전용 어드레싱 모드에 의존하지 않고도 인코딩 공간을 증가시킬 수 있고, 명령어 집합 구조의 직교성을 유지할 수 있으며, 기존에 이용되는 아키텍쳐보다 성능이 더욱 향상된, 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서를 제공하는 것이다.
본 발명은 서울대학교 전기컴퓨터 정보기술사업단 및 교육부와 한국연구재단의 두뇌한국(BK) 21의 일환으로 수행한 연구로부터 도출된 것이다.
[과제관리번호: 0567-20090001, 과제명: 국고]
임베디드 프로세서(embedded processor)들은 적은 에너지 소비량과 작은 코드 크기를 이루기 위해 엄격한 디자인 조건을 만족시켜야 한다. 이러한 이유로 32비트 아키텍처가 대부분의 마이크로프로세서의 최근 표준임에도 불구하고, 16비트 아키텍처가 임베디드 프로세서에서 여전히 사용되고 있다.
그러나 16비트 아키텍처는 코드의 인코딩 공간이 충분하게 제공되지 않는다 는 제한이 있다. 이러한 제한은 디지털 신호처리나 네트워크 처리와 같은 특정 애플리케이션 분야에 대한 임베디드 프로세서에 대해서는 결정적인 문제점이 될 수 있다. 왜냐하면 일반적으로 임베디드 프로세서는, 최종 애플리케이션의 수행 성능을 향상시키기 위해 다양한 명령어를 포함하는 CISC(Complex Intruction Set Computer) 방식으로 디자인되기 때문이다.
이러한 제한을 극복하기 위해 특정 임베디드 프로세서의 명령어는 전용 어드레싱 모드(dedicated addressing mode)를 사용한다. 이러한 전용 어드레싱 모드를 사용하면, 각 명령어의 오퍼랜드(operand, 피연산자)들은 프로세서에서 일부분의 레지스터만을 사용할 수 있게 된다.
전용 어드레싱 모드는, 오퍼랜드 필드의 폭을 줄일 수 있는 장점이 있기 때문에, 제한된 명령어 공간 안에 더 많은 연산자(op-code)와 피연산자(오퍼랜드, operand)를 위한 인코딩 공간을 확보할 수 있다. 이를 설명하기 위해, 총 6개(입력 레지스터 4개, 누산기(accumulator) 2개)의 데이터 레지스터를 갖고 있는 Freescale DSP566xx를 살펴보기로 한다. 입력 레지스터들은 곱셈이나 덧셈의 입력 오퍼랜드로도 사용될 수 있는 반면에, 누산기는 오직 덧셈의 출력에만 연결되어 있다. 따라서 DSP566xx의 덧셈 명령어는 목적지 오퍼랜드의 인코딩을 위하여 오직 하나의 비트만 요구한다.
도 1은 DSP566xx에서 ADD 명령어의 포맷을 나타낸 도면이다.
도 1을 통해서 3개의 비트(JJJ)가 소스(source) 오퍼랜드로 사용되었고, 목적지(destination) 오퍼랜드로는 단지 하나의 비트(d)만 사용됨을 알 수 있다.
만일 전용 어드레싱 모드의 특별한 형태라 생각하는 묵시적 어드레싱 모드(implied addressing mode)를 사용한다면 소스 오퍼랜드를 기술하기 위해서는 몇 비트가 요구되지만 목적지 오퍼랜드를 위해서는 어떠한 비트도 할당할 필요가 없음을 알 수 있다. 연산의 결과값은 오직 정해진 레지스터 안에만 존재하기 때문에 별도로 지정할 필요가 없다.
일반적으로 전용 어드레싱 모드를 지원하기 위해 하드웨어 레지스터 파일들이 명령어에 따라 물리적으로 분리되어 있는 이종 레지스터 아키텍쳐(HRA, heterogeneous register architecture)를 사용한다.
명령어에 대한 레지스터 아키텍처의 이질성은 보통 프로세서가 비직교적인 명령어 집합구조(ISA, Instruction Set Architecture)를 가지도록 한다. 왜냐하면 각각의 레지스터 파일은 코드 내의 명령어마다 다르게 이용될 수 있기 때문이다.
컴파일러 입장에서는 비직교적인 ISA를 위한 코드 생성은 RISC(reduced instruction set computer) 프로세스에서 직교적인 ISA를 위한 코드 생성보다 휠씬 더 어려운 알고리즘을 요구한다. 컴파일러가 명령어를 선택함과 동시에 명령어 각각의 오퍼랜드에 할당되는 레지스터를 결정해야 하기 때문이다.
이는 컴파일러가 동일한 시간에 코드 생성의 두 가지 단계, 즉 명령어 선택 단계와 레지스터 할당 단계를 모두 다뤄야 한다는 것을 의미하며, Phase coupling 이라고 불리는 이 문제는 NP-hard로 알려져 있다.
이전 연구에서 phase coupling에 대한 정교한 알고리즘이 없으면 HRA는 각 명령어의 오퍼랜드를 위해 분산되어 있는 레지스터 파일들 안에 부적절한 레지스터 할당에 의해서 주로 발생하는 분산된 코드를 더욱 많이 생성하는 경향이 있다고 보고했다. 전용 어드레싱 모드의 개발 방법은 오퍼랜드들의 인코딩 폭을 줄일 수는 있겠지만 코드 생성 문제를 복잡하게 만들기 때문에 컴파일러에 비지향적이라고 할 수 있다.
연산에 대하여 오퍼랜드의 수를 줄여서 인코딩하는 것은 인코딩 공간의 부족을 극복하기 위한 방법으로 간주 될 수 있으며, 이와 관련된 전형적인 예는 2개의 오퍼랜드를 사용하는 명령어들이다. 비록 바이너리 연산에 3개의 오퍼랜드가 필요하지만, 1개의 소스 오퍼랜드와 목적지 오퍼랜드를 동일 위치에 공유함으로써 2개의 오퍼랜드로서 바이너리 연산을 인코딩할 수 있다.
이 방법의 장점은 프로세서가 더욱 큰 인코딩 공간을 얻기 위해 전용 어드레싱 모드에 의존하는 것을 피할 수 있다는 것이다. 이로 인해 코드생성의 복잡성을 줄이는 동시에 명령어 집합구조(ISA)를 직교 상태로 유지할 수 있다는 것이다. 그러나 2개의 오퍼랜드를 가지는 명령어로 구성된 2-어드레스(2-address) 코드는 보통 많은 move 명령어를 포함한다는 단점을 가지는데, 이는 기존 내용을 보호하기 위해 추가적인 move 연산을 수반하기 때문이다. 일반적으로면 2-address 코드는 3-address 코드보다 거의 두 배정도 많은 move 명령어를 가지고 있다.
도 2는 벤치마크 IDCT(inverse discrete cosine transform)의 코드를 나타낸 도면이다. 도 2를 참조하면, 도 3(a)의 2-address 코드는 도 3(b)의 3-address 코드와 비교하여 4개의 move 연산이 불필요하게 추가된 것을 알 수 있다.
따라서, 전용 어드레싱 모드에 의존하지 않고도 인코딩 공간을 증가시킬 수 있고, 명령어 집합 구조의 직교성을 유지할 수 있는 프로세서 아키텍처의 필요성이 커지고 있다.
본 발명이 해결하고자 하는 과제는, 전용 어드레싱 모드에 의존하지 않고도 인코딩 공간을 증가시킬 수 있고, 명령어 집합 구조의 직교성을 유지할 수 있으며, 기존에 이용되는 아키텍쳐보다 성능이 더욱 향상된 컴파일러 지향적인, 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서를 제공하는데 있다.
상기한 과제를 해결하기 위해 본 발명에 따른 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서는, 명령어 메모리에서 페치(fetch)된 페치 명령어로부터 암시 비트의 온 여부를 검출하는 암시 비트 검출부; 암시 비트가 온된 경우, 동적 카운터가 지시하는 위치에 저장되어 있는 암시값을 독출하는 암시값 참조부; 및 상기 검출부와 상기 암시값 참조부의 후단에 삽입되며, 상기 페치 명령어의 연산자와 오퍼랜드 및 상기 독출된 암시값을 디코딩부로 전달하는 파이프를 포함하며, 연산자(op-code), 오퍼랜드(operand), 및 1 비트의 암시 비트로 구분된 포맷의 명령어를 이용하는 것을 특징으로 한다.
바람직하게는, 상기 암시값 참조부는, 위치별로 암시값이 저장되어 있는 암시용 메모리; 및 암시 비트가 온된 경우, 압시값을 독출하기 위해 상기 암시용 메모리에서의 독출 위치를 지시하는 동적 카운터; 및 상기 암시값이 독출된 후, 상기 동적 카운터의 독출 위치를 갱신하는 카운터 갱신부를 포함할 수 있다.
한편, 상기한 과제를 달성하기 위해서 본 발명에 따른 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서는, 연산자(op-code), 오퍼랜드(operand), 및 1 비트의 암시 비트로 구분된 포맷의 명령어를 이용하는 파이프라인 방식의 프로세서로서, 명령어 메모리에서 페치(fetch)된 페치 명령어로부터 암시 비트의 온 여부를 검출하는 암시 비트 검출부; 및 암시 비트가 온된 경우, 동적 카운터가 지시하는 위치에 저장되어 있는 암시값을 독출하는 암시값 참조부를 포함하며, 프로세서의 디코딩부가 상기 페치 명령어를 해석하는 동안, 상기 암시값 참조부는 상기 암시값을 독출하여 프로세서의 실행부로 전달하는 것을 특징으로 한다.
본 발명에 의하면, 전용 어드레싱 모드에 의존하지 않고도 인코딩 공간을 증가시킬 수 있으며, 이종 레지스터 아키텍쳐를 채용하지 않아 명령어 집합 구조의 직교성을 유지할 수 있으며, 기존에 이용되는 아키텍쳐보다 성능이 더욱 향상된, 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서를 제공할 수 있다.
이하에서 첨부된 도면을 참조하여, 본 발명의 바람직한 실시예를 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 3은 파이프라인 방식 프로세서의 기본적인 아키텍쳐를 나타낸 도면으로서, 파이프라인 방식 프로세서(100)는 파이프라인(pipeline) 방식의 기반 프로세서를 의미한다.
파이프라인(pipeline)이란 프로세서로 가는 명령어들의 움직임, 또는 명령어를 수행하기 위해 프로세서에 의해 취해진 산술적인 단계가 연속적이고, 다소 겹치는 것을 말한다. 파이프라인을 이용하면, 프로세서는 산술 연산을 수행하는 동안에 다음번 명령어를 가져올 수 있으며, 그것을 다음의 명령어 연산이 수행될 때까지 프로세서 근처의 버퍼에 가져다 놓는다. 명령어를 가져오는 단계가 끊임없이 계속된 결과, 주어진 시간 동안에 수행될 수 있는 명령어의 수가 증가한다.
기반 프로세서(base processor)란 파이프라인 방식을 이용하는 일반적인 RISC 프로세서의 유닛(unit)들의 집합으로서, 기반 프로세서는 프로그램 카운터(Program counter:PC, 110), 명령어 메모리(Instruction memory, 120), 제1 파이프(Pipe_1, 181), 디코딩부(Decoding logic, 130), 제2 파이프(Pipe 2, 182), 제1 실행부(Execution logic, 140), 제3 파이프(Pipe 3, 183), 제2 실행부(150), 제4 파이프(Pipe 4, 184), 레지스터 파일(Register file, 160), 데이터 메모리(data memory, 170)를 포함한다. 프로그램 카운터(110), 명령어 메모리(120), 제1 파이프(181), 디코딩부(130), 제2 파이프(182), 제1 실행부(140), 제3 파이프(183), 제2 실행부(150), 제4 파이프(184), 레지스터 파일(160), 데이터 메모리(170)는 일반적인 기술에 관한 것이므로 상세한 설명은 생략하도록 한다.
도 3의 기반 프로세서는 5-stage RISC(reduced instruction set computer) 프로세서를 이용한 예를 도시한 것으로서, 본 발명에 따른 파이프라인 방식의 프로세서는 이에 한정되지 않으며 다양한 multi-stage의 RISC 프로세서가 이용될 수 있다.
도 3의 기반 프로세서는 읽기(fetch) 단계-디코딩(decoding) 단계 -제1 실행(execution 1) 단계-제2 실행(execution 2) 단계-기록(write back) 단계(stage)의 5단계를 수행한다. 한 명령의 처리 시간 동안에 다른 명령들을 중첩시켜서 수행하는 파이프라인 방식을 이용하기 위해 상기 각 단계(stage)를 수행하는 유닛 사이에는 파이프가 위치한다.
제1 파이프(181)는 명령어 메모리(120)와 디코딩부(130)의 사이에 위치하고, 제2 파이프(182)는 디코딩부(130)와 제1 실행부(140)의 사이에 위치하며, 제3 파이프(183)는 제1 실행부(140)와 제2 실행부(150)의 사이에 위치하며, 제4 파이프(184는 제2 실행부(150)의 후단에 위치한다.
페치 단계(fetch-stage)에서 각 명령어들은 프로그램 카운터(110)에 따른 순서로 명령어 메모리(120)로부터 패치 되고, 디코딩 단계(decoding-stage)에서 디코딩부(130)는 페치된 페치 명령어를 해석한 후 그 해석된 신호를 이후의 각 모듈로 전달한다. 브랜치(branch), 점프(jump), 및 콜(call)과 같은 분기 명령어들은 파이프라인의 효율성을 위해 디코딩 단계에서 끝나도록 디자인되었다.
제1 실행 및 제2 실행 단계에서, 메모리 연산들은 제1 실행부(140)에서 수행되고 그 결과는 제2 실행부(150)로 이동된다. 곱셈과 산술 그리고 메모리 연산들은 결정적인 패스(path) 지연을 가지기 때문에 제1 실행부와 제2 실행부(150)로 구분된다. 기록 단계(write back-stage)에 레지스터 파일로의 기록 작업이 수행된다.
디코딩부(130)와 제1 및 제2 실행부(140, 150)는 각종 로직(logic), 멀티플렉서(multiplexer, MUX), 디멀티플렉서(demultiplexer, DEMUX), 곱셈(multiplier, MUL), 산술논리장치(ALU), 메모리의 로드/스토어부(LD/ST) 등을 포함하여 이루어질 수 있다.
도 4는 본 발명의 바람직한 실시예에 따른 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서를 나타낸 블록도이다.
본 발명의 바람직한 실시예에 따른 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서(200)는, 암시 비트 검출부(290), 암시값 참조부(291), 및 삽입 파이프(288)를 포함하는 파이프라인 방식의 프로세서로서, 연산자(op-code), 2 개의 오퍼랜드(operand), 및 1 비트의 암시 비트로 구분된 포맷의 명령어를 이용한다.
앞서 설명한 것처럼 본 발명에 따른 파이프라인 방식의 프로세서는 프로그램 카운터(110), 명령어 메모리(120), 제1 파이프(181), 디코딩부(130), 제2 파이프(182), 제1 실행부(140), 제3 파이프(183), 제2 실행부(150), 제4 파이프(184), 레지스터 파일(160), 데이터 메모리(170) 등을 더 포함할 수 있다.
암시 비트 검출부(290)는 명령어 메모리(220)로부터 페치(fetch)된 페치 명령어로부터 암시 비트(D-bit)의 온/오프 여부를 검출하고, 페치 명령어의 연산자(op-code) 및 오퍼랜드(operand)들을 후단의 디코딩부(230)로 전달한다.
암시값 참조부(291)는, 페치 명령어의 암시 비트가 온된 경우, 동적 카운터가 지시하는 위치에 저장되어 있는 암시값을 독출하는 역할을 수행한다.
삽입 파이프(288)는 디코딩부(230)의 전단에 위치하며, 암시 비트 검출부(290)로부터 전달된 페치 명령어의 연산자와 오퍼랜드들 그리고 암시값 참조 부(291)로부터 전달받은 독출된 암시값을 디코딩부(230)로 전달한다. 본 발명에 따른 파이프라인 방식 프로세서(200)는 도 3의 파이프라인 방식 프로세서에 삽입 파이프(288)가 더 추가됨으로 인하며 파이프라인 단계에 있어서 삽입 파이프라인 단계가 더 추가된다. 삽입 파이프라인 단계는 후술할 '동적 암시 어드레싱 모드'를 위한 파이프라인 단계로서, DIA-stage(dynamic implied adressing-stage)로 부르기로 한다.
한편, 후술하겠지만 본 발명에 따른 파이프라인 방식의 프로세서(200)는, 디코딩부(230)의 명령어가 jump, call, 및 branch와 같은 분기 명령어인 경우, 상기 암시값 참조부(291)의 동적 카운터가 지시하는 위치를 갱신하는 브랜치 갱신부(297)를 더 포함할 수 있다.
본 발명에 따른 파이프라인 방식의 프로세서는 이진 연산을 위해서 3개의 오퍼랜드(명시적인 오퍼랜드 2개와 암시적인 오퍼랜드 1개)를 사용하며, 암시적인 오퍼랜드에 대한 메모리 연산을 위해 변위 어드레싱 모드(displacement addressing mode)를 사용한다. 1 비트 크기를 가지는 암시적인 오퍼랜드(이하 '암시 비트')는 명령어 워드로부터 숨겨지고 프로세서 내의 분리된 위치에 저장되며, 이 암시적인 오퍼랜드는 실행 시간에 하드웨어에 의해서 자동으로 검색된다.
암시적 어드레싱 모드(implied adressing mode)를 사용하는 목적지 오퍼랜드는 반드시 정해진 레지스터를 사용해야 하는데 반하여, 본 발명에 따른 파이프라인 방식의 프로세서에서 이용되는 명령어의 오퍼랜드는 고정된 레지스터에 정적으로 바운드 되지 않고 다른 사용 가능한 레지스터를 동적으로 가리킬 수 있다. 이처럼 본 발명에서 이용되는 어드레싱 모드를 이하에서는 '동적 암시 어드레싱 모드'라고 부를 것이며, 본 발명은 동적 암시 어드레싱 모드를 지원하는 프로세서에 관한 것이다.
도 5는 본 발명의 개념을 간략히 설명한 도면이다.
메모리 명령어의 오프셋 또는 명령어의 목적지 레지스터는 도 5에서처럼 명령어 내에 위치한 D 비트(D-bit)에 의해 암시적으로 이용될 수 있으며, 암시적인 3번째 오퍼랜드는 암시용 메모리(MDIA, 293) 내에 암시적으로 저장된다. 암시용 메모리(MDIA, 293)는 오직 읽기만 가능한 메모리로서 동적 카운터(dynamic program counter, DPC, 292)에 의해 포인팅된다. 암시용 메모리(MDIA, 293) 내에 저장된 암시값(VDIA)은 산술논리장치(ALU) 연산의 목적지 레지스터 주소, 메모리 연산의 오프셋 값, 또는 branch와 같은 분기 명령어를 위한 동적 카운터 값이 될 수 있다.
도 5를 참조하면, 명령어 메모리(270)의 구조와 암시용 메모리(293)의 구조가 표시되어 있다. 본 발명에서 이용되는 명령어는 연산자(op-code), 제1 오퍼랜드(operand 1), 제2 오퍼랜드(operand 2), 및 1 비트 크기의 암시 비트(D-bit)로 구분된 포맷을 가지며, 프로그램 카운터(210)가 지시하고 있는 위치(VPC)의 명령어가 명령어 메모리(270)로부터 페치된다.
명령어 메모리(270)로부터 페치된 명령어 내의 암시 비트(D-bit)는 암시용 메모리(MDIA, 293)에서 동적 카운터(292)가 지시하고 있는 위치에 저장되어 있는 묵 시적인 오퍼랜드 값인 암시값(VDIA)이 참조되어야 하는가를 의미한다.
암시 비트(D-bit)가 온(on)되어 있으면, 즉 명령어 내의 암시 비트의 값이 1이라면, 암시용 메모리(MDIA, 293)에서 암시값 참조부(291)의 동적 카운터(292)가 지시하고 있는 위치(VDPC)에 저장되어 있는 값인 암시값(VDIA)이 페치된다. 이를 위해 동적 카운터(292)는 암시용 메모리(MDIA, 293) 상의 어느 한 위치를 지시하고 있으며, 암시용 메모리(MDIA, 293)로부터 암시값이 독출되면 카운터 갱신부(294)는 동적 카운터(292)가 현재 암시용 메모리(293)에서 지시하고 있는 위치를 새로 갱신한다.
한편, 명령어의 종류 및 타입에 따라 암시용 메모리(MDIA, 293)로부터 다수의 암시값을 독출할 필요가 있을 수도 있다. 따라서 암시값 참조부(291)는 '암시 비트'의 온/오프 여부에 따른 독출할 암시값의 개수를 각 명령어별로 결정할 수 있다. 예를 들어 mac 명령어의 경우 오퍼랜드의 개수가 4개가 필요하며, mac 명령어의 암시 비트가 '0'인 경우 암시용 메모리로부터 하나의 암시값을 독출하도록 결정하고, 암시 비트가 '1'인 경우 암시용 메모리로부터 2개의 암시값을 순차로 독출하도록 결정할 수 있다.
도 6은 도 4에서 암시 비트 검출부와 암시값 참조부를 상세히 설명한 블록도이다.
암시 비트 검출부(290)는 상술한 것처럼 명령어 메모리(220)로부터 페치된 명령어 내에 존재하는 암시 비트의 온 여부를 검출하고, 페치된 명령어의 연산 자(op-code) 및 오퍼랜드(operands)들을 후단의 삽입 파이프(288)를 통해 디코딩부(230)로 전달한다.
만일 페치된 명령어 내의 암시 비트가 온 상태인 경우에는, 암시 비트 검출부(290)는 후술하는 것처럼 암시용 메모리로부터 암시값을 독출하여 디코딩부(230)로 전달하는 동시에 페치 명령어의 연산자(op-code) 및 오퍼랜드(operands)들을 디코딩부(230)로 전달한다.
한편 페치된 명령어 내의 암시 비트가 오프(off) 상태인 경우에는, 암시 비트 검출부(290)는 페치 명령어의 연산자(op-code) 및 오퍼랜드(operands)만을 디코딩부(230)로 전달한다
암시값 참조부(291)는 동적 카운터(292), 카운터 갱신부(294), 및 암시용 메모리(293)를 포함할 수 있다.
동적 카운터(292)는, 명령어 메모리(220)로부터 페치한 페치 명령어 내의 암시 비트가 온(on) 상태인 경우, 암시용 메모리(293)에서 압시값을 독출하기 위한 독출 위치를 지시하는 카운터이다.
암시용 메모리(293)는 동적 카운터(292)가 지시하는 위치별로 각 암시값이 저장되어 있는 메모리로서, 페치 명령어 내의 암시 비트가 온(on) 상태인 경우 동적 카운터(292)가 지시하고 있는 위치에 저장되어 있는 암시값이 독출되고, 독출된 암시값은 삽입 파이프(288)를 통해 디코딩부(230)로 전달된다.
카운터 갱신부(294)는 암시용 메모리(293)에서 압시값이 독출되면, 동적 카운터가 암시용 메모리에서 지시하고 있는 현재 위치인 독출 위치를 새로 갱신한다.
도 7은 도 4 및 도 6의 브랜치 갱신부를 설명한 도면이고, 도 8은 도 6의 카운터 갱신부를 설명한 도면이다.
암시용 메모리(293)로부터 암시값을 독출할 수 있는 명령어는 다음의 두 그룹으로 나뉠 수 있다.
하나의 그룹은 산술논리 명령어나 메모리 명령어들처럼 소스코드의 제어 흐름을 바꿀 수 없는 명령어 그룹이고, 나머지 한 그룹은 jump, call, 및 branch 등과 같이 소스코드의 제어 흐름을 바꿀 수 있는 명령어 그룹이다. jump, call 및 branch처럼 소스코드의 제어 흐름을 바꿀 수 있는 명령어를 CFI(contrl flow instruction)라 부르기로 한다.
상기 두 그룹은 소스 코드의 제어 흐름이 상이하므로, 동적 카운터(292)에서 독출 위치(암시용 메모리에서 동적 타운터의 현재 포인팅 위치)가 갱신되는 방식도 서로 상이하다. 이하에서는 각 그룹의 명령어에 따라 동적 카운터(292)에서 동적 카운터(292)의 독출 위치가 갱신되는 방식을 살펴보기로 한다.
브랜치 갱신부(297)는 가산기(298)와 멀티플렉서(MUX, 299)를 포함하며, jump, call 및 branch 등과 같이 소스코드의 제어 흐름을 바꿀 수 있는 명령어가 수행된 경우에 동적 카운터(292)의 독출 위치를 갱신하는데 이용되는 구성요소이다.
브랜치 갱신부(297)의 가산기(298)는 암시용 메모리(293)로부터 독출한 암시값(VDIA)에 동적 카운터의 현재 독출 위치값(VDPC)을 가산하는 역할을 수행한다.
브랜치 갱신부(297)의 멀티플렉서(299)는 가산기(298)에서 출력된 가산값과 동적 카운터의 현재 독출 위치값(VDPC) 중에서 어느 하나의 값을 선택하고, 그 선택한 값을 카운터 갱신부(294)로 전달하는 역할을 수행한다. 멀티플렉서(299)의 선택은 디코딩부(230)에서의 명령어 그룹에 따라 상이해지는데, 디코딩부(230)의 명령어가 분기 명령어인 경우 멀티플렉서(299)는 가산기(298)에서 출력된 가산값을 선택하고, 디코딩부(230)의 명령어가 분기 명령어가 아닌 경우 멀티플렉서(299)는 동적 카운터의 현재 독출 위치값을 선택한다.
도 6을 참조하면, 카운터 갱신부(294)는 가산기(295)와 멀티플렉서(296)를 포함할 수 있다.
카운터 갱신부(294)의 가산기(295)는 암시용 메모리(293)로부터 암시값이 독출되면, 동적 카운터(292)의 현재 독출 위치를 1 씩 가산하는 역할을 수행한다.
카운터 갱신부(294)의 멀티플렉서(296)는 가산기(295)에서 출력된 가산값과 상술한 브랜치 갱신부(297)의 출력값 중에서 어느 하나의 값을 선택하고, 그 선택한 값으로 동적 카운터(292)의 독출 위치를 새로 갱신한다. 멀티플렉서(296)의 선택은 디코딩부(230)에서의 명령어 그룹에 따라 상이해지는데, 디코딩부(230)의 명령어가 분기 명령어인 경우 멀티플렉서(296)는 브랜치 갱신부(297)에서 출력된 출력값을 선택하고, 디코딩부(230)의 명령어가 분기 명령어가 아닌 경우 멀티플렉서(296)는 가산기(295)의 출력값을 선택한다.
도 9는 암시용 메모리로부터 암시값을 독출할 수 있는 명령어 집합 구조의 포맷을 나타낸 도면이다.
도 9를 참조하면, 첫째 열은 기능으로 구분되는 명령어 그룹을 나타내고, 둘째 열은 각각의 명령어를 나타내고, 셋째의 짙은 열은 연산자인 op-code를 나타내고, 굵은 선으로 둘러싸인 1 비트 열의 D는 암시 비트를 의미하며, 암시 비트의 우측 열은 모두 오퍼랜드를 의미한다. 한편, 도 9에 나타난 모든 명령어들은 암시용 메모리로부터 암시값을 독출할 수 있는 명령어들이다.
도 4 내지 도 8에서 본 발명의 바람직한 실시예에 대하여 설명하였다. 그러나 본 발명의 바람직한 실시예에 따른 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서는 감소한 move 명령어의 개수에 의해 전체적인 명령어의 동적 카운터 수가 줄어들기 때문에, 애플리케이션을 실행할 때 기본적인 아키텍처에 비해 실행 시간의 평균값은 감소한다. 그러나 본 발명의 바람직한 실시예에 따른 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서는 기본적인 멀티-스테이지 프로세서에 새로운 삽입 파이프라인 단계(DIA-stage)를 추가하였기 때문에 클럭 타임이 늘어나는 문제점이 발생한다.
도 10은 본 발명의 다른 실시예에 따른 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서를 나타낸 블록도이다.
본 발명의 다른 실시예에 따른 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서(300)는 클럭 타임이 늘어나는 문제점을 해결하기 위한 발명으로서, 암시 비트 검출부(390) 및 암시값 참조부(391)를 포함하며 추가로 브랜치 갱신부(397)를 더 포함하는 파이프라인 방식의 프로세서이다. 본 발명의 다른 실시 예에 따른 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서(300)는 프로세서의 디코딩부(330)가 명령어 메모리(320)로부터 페치한 명령어를 해석하여 제1 실행부(340)로 전달하는 동안 암시값 참조부(391)는 암시용 메모리(393)로부터 암시값을 독출하여 프로세서의 제1 실행부(340)로 전달하며, 여기서 이용되는 명령어는 연산자(op-code), 2 개의 오퍼랜드(operand), 및 1 비트 크기의 암시 비트로 구분된 포맷을 가진다.
암시값 참조부(391)는 동적 카운터(392), 암시용 메모리(393), 및 카운터 갱신부(394)를 포함하며, 카운터 갱신부(394)는 가산기(395)와 멀티플렉서(396)를 포함한다.
상술한 것처럼 도 4의 실시예에서는 삽입 파이프라인 단계(DIA-stage)와 디코딩 단계(DC-stage)로 파이프라인 단계가 나뉘어 있었다. 그러나 본 발명의 다른 실시예에 따른 파이프라인 방식의 프로세서(300)에서는 도 4의 실시예와는 달리 삽입 파이프라인 단계(DIA-stage)와 디코딩 단계(DC-stage)로 나뉘어 있던 파이프라인 단계가 하나의 새로운 파이프라인 단계(DIAC)로 구현된다.
한편 본 발명의 다른 실시예에 따른 파이프라인 방식의 프로세서(300)는 기존의 파이프라인 방식 프로세서와 마찬가지로 프로프로그램 카운터(310), 명령어 메모리(320), 제1 파이프(381), 디코딩부(330), 제2 파이프(382), 제1 실행부(340), 제3 파이프(383), 제2 실행부(350), 제4 파이프(384), 레지스터 파일(360), 데이터 메모리(370) 등을 더 포함할 수 있다.
도 10에 도시된 모든 구성요소들은 상기 도 3 내지 도 9에 대해 설명한 구성 요소와 동일한 기능을 수행하므로 상세한 설명은 생략하도록 한다.
동적 암시 어드레싱 모드(DIAM)는 암시용 메모리의 부가적인 인코딩 공간과 함께 실행에 필요한 많은 연산자를 사용할 프로세서의 명령을 위하여 고안되었다. 이하에서는 동적 암시 어드레싱 모드(DIAM)를 이용하여 명령어를 생성하기 위해 구현한 컴파일 구조를 설명하도록 한다.
동적 암시 어드레싱 모드(DIAM)을 사용하는 명령어들은 다음의 두 단계를 통하여 생성된다.
첫 번째 단계에서, 소스 코드는 연산자가 하위 레벨의 중간 표현(IR, Intermediate representation) 형태로 명확하게 표현되는 명령어로 컴파일된다. 예를 들면, 이 단계에서는 소스 코드상의 연산 x=y+z 가 어셈블리 형태의 명령어 add r3,r4,r5로 해석된다. 그러나, 본 발명에서 제공되는 기계어의 제한 하에서 3개의 모든 연산자들을 부호화하는 것이 불가능하기 때문에 명령어를 우리가 목표로 하는 프로세서상에서 실행하는 것은 아직 불가능하다. 따라서 모든 연산자들을 적절하게 부호화하여 실제 기계 명령어가 되기 위하여, 명령어들은 동적 암시 어드레싱 모드(DIAM)를 이용하여야 한다.
두 번째 단계에서, 첫 번째 단계의 명령어의 오퍼랜드들은 동적 암시 어드레싱 모드를 이용하기 위해 수정된다. add r3,r4,r5의 경우, 목표인 r3는 암시용 메모리로 이동하고, 이 명령어의 암시 비트(D-bit)가 설정된다. 첫 번째 단계로부터의 명령어내의 연산자를 수정하는 것은 이들을 동시에 명령어와 암시용 메모리 모두에 패킹하는 것과 다소 유사하다. 따라서 우리는 이러한 과정을 트리트먼트 패 킹(treatment packing)이라 지칭하며, 첫 번째 단계로부터 생성된 명령어를 프리-팩(pre-pack) 명령어로 지칭한다.
본 발명에 이용되는 컴파일러는 두 개의 부분으로 구성된다. 첫 번째 부분은 프리-팩 어셈블리 코드를 생성하는 컴파일러이며, 다른 하나는 프리-팩 코드를 수신하여 동적 암시 어드레싱 모드(DIAM)의 도움을 통하여 어셈블리 코드를 생성하는 동적 암시 어드레싱 모드(DIAM) 옵티마이저(optimizer)이다.
도 11은 최종 기계어가 생성되는 과정을 설명한 도면이다.
도 11은 암시용 메모리(MDIA)를 생성하고 프리-팩 명령어를 수정하는 방법을 보여준다. 예를 들면, 도 11(a)의 두 번째 블록의 mul r4, r5, r7는 mul 1, r5, r7로 수정된다. mul의 최종 레지스터 숫자 4가 암시용 메모리(MDIA)에 저장된다. 모든 기본 블럭에 대해 암시용 메모리(MDIA)에 저장될 내용이 결정되면, 각각의 흐름 제어 명령어(CFI)의 암시값(VDIA)이 연산된다. 세 번째 기본 블록에 대한 암시용 메모리(MDIA)의 크기가 2 이기 때문에 ble L5의 값이 2가 된다. 그리고, 첫 번째 블록은 중복되는 CFI인 ble 1, L3을 제외하면 동적 암시 어드레싱 명령어를 포함하지 않는다. 따라서 CFI의 D-bit는 '0'으로 설정된다. 최종적으로 동적 암시 어드레싱 모드(DIAM) 옵티마이저가 도 11(e)에 도시된 것과 같은 최종 기계어를 생성한다.
도 12는 본 발명의 실시예에 대한 실험 결과 그래프이다.
도 12의 정규 결과는 도 4 및 도 10의 실시예들의 실행 시간을 기본적인 2- 어드레스 아키텍처와 비교하여 나타낸 비율이다. 도 12를 참조하면, 도 10의 실시예에서 모든 벤치마크의 성능이 좋아진 것을 확인할 수 있으며, 심지어 도 4의 실시예에서 더욱 나빠졌었던 Compress도 성능이 좋아졌다. 도 10의 실시예는 평균 3.5%의 성능 향상을 보인데 비해, 새롭게 고안된 아키텍처인 도 10의 실시예는 11.6%로 크게 성능이 향상되었다.
이상에서는 도면에 도시된 구체적인 실시예를 참고하여 본 발명을 설명하였으나 이는 예시적인 것에 불과하므로, 본 발명이 속하는 기술 분야에서 통상의 기술을 가진 자라면 이로부터 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명의 보호 범위는 후술하는 특허청구범위에 의하여 해석되어야 하고, 그와 동등 및 균등한 범위 내에 있는 모든 기술적 사상은 본 발명의 보호 범위에 포함되는 것으로 해석되어야 할 것이다.
도 1은 DSP566xx에서 ADD 명령어의 포맷을 나타낸 도면.
도 2는 벤치마크 IDCT(inverse discrete cosine transform)의 코드를 나타낸 도면.
도 3은 파이프라인 방식 프로세서의 기본적인 아키텍쳐를 나타낸 도면.
도 4는 본 발명의 바람직한 실시예에 따른 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서를 나타낸 블록도.
도 5는 본 발명의 개념을 나타낸 도면.
도 6은 도 4에서 암시값 참조부를 상세히 설명한 블록도.
도 7은 도 4에서 브랜치 갱신부를 상세히 설명한 도면.
도 8은 도 6에서 카운터 갱신부를 상세히 설명한 도면.
도 9는 본 발명에서 이용되는 명령어 집합 구조의 포맷을 나타낸 도면.
도 10은 본 발명의 다른 실시예에 따른 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서를 나타낸 블록도.
도 11은 최종 기계어가 생성되는 과정을 설명한 도면.
도 12는 실험 결과에 대한 그래프.

Claims (6)

  1. 연산자(op-code), 오퍼랜드(operand), 및 1 비트의 암시 비트로 구분된 포맷의 명령어를 이용하는 파이프라인 방식의 프로세서로서,
    명령어 메모리에서 페치(fetch)된 페치 명령어로부터 암시 비트의 온 여부를 검출하는 암시 비트 검출부;
    암시 비트가 온된 경우, 동적 카운터가 지시하는 위치에 저장되어 있는 암시값을 독출하는 암시값 참조부; 및
    상기 검출부와 상기 암시값 참조부의 후단에 삽입되며, 상기 페치 명령어의 연산자와 오퍼랜드 및 상기 독출된 암시값을 디코딩부로 전달하는 파이프를 포함하는 것을 특징으로 하는, 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서.
  2. 제1항에 있어서, 상기 암시값 참조부는
    위치별로 암시값이 저장되어 있는 암시용 메모리; 및
    암시 비트가 온된 경우, 압시값을 독출하기 위해 상기 암시용 메모리에서의 독출 위치를 지시하는 동적 카운터; 및
    상기 암시값이 독출된 후, 상기 동적 카운터의 독출 위치를 갱신하는 카운터 갱신부를 포함하는 것을 특징으로 하는, 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서.
  3. 제2항에 있어서, 상기 프로세서는
    상기 페치 명령어가 분기 명령어이면, 상기 암시값이 독출된 후 상기 독출된 암시값만큼을 가산한 값으로 상기 동적 카운터의 독출 위치를 갱신하고,
    상기 페치 명령어가 분기 명령어가 아니면, 상기 동적 카운터의 독출 위치를 1 만큼 가산하는 브랜치 갱신부를 더 포함하는 것을 특징으로 하는, 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서.
  4. 연산자(op-code), 오퍼랜드(operand), 및 1 비트의 암시 비트로 구분된 포맷의 명령어를 이용하는 파이프라인 방식의 프로세서로서,
    명령어 메모리에서 페치(fetch)된 페치 명령어로부터 암시 비트의 온 여부를 검출하는 암시 비트 검출부; 및
    암시 비트가 온된 경우, 동적 카운터가 지시하는 위치에 저장되어 있는 암시값을 독출하는 암시값 참조부를 포함하며,
    프로세서의 디코딩부가 상기 페치 명령어를 해석하는 동안, 상기 암시값 참조부는 상기 암시값을 독출하여 프로세서의 실행부로 전달하는 것을 특징으로 하는, 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서.
  5. 제4항에 있어서, 상기 암시값 참조부는
    위치별로 암시값이 저장되어 있는 암시용 메모리;
    암시 비트가 온된 경우, 압시값을 독출하기 위해 상기 암시용 메모리에서의 독출 위치를 지시하는 동적 카운터; 및
    상기 암시값이 독출된 후, 상기 동적 카운터의 독출 위치를 갱신하는 카운터 갱신부를 포함하는 것을 특징으로 하는, 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서.
  6. 제5항에 있어서, 상기 카운터 갱신부는
    상기 페치 명령어가 분기 명령어이면, 상기 암시값이 독출된 후 상기 독출된 암시값만큼을 가산한 값으로 상기 동적 카운터의 독출 위치를 갱신하고,
    상기 페치 명령어가 분기 명령어가 아니면, 상기 동적 카운터의 독출 위치를 1 만큼 가산하는 브랜치 갱신부를 더 포함하는 것을 특징으로 하는, 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서.
KR1020090131249A 2009-12-24 2009-12-24 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서 KR101084728B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090131249A KR101084728B1 (ko) 2009-12-24 2009-12-24 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090131249A KR101084728B1 (ko) 2009-12-24 2009-12-24 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서

Publications (2)

Publication Number Publication Date
KR20110074323A KR20110074323A (ko) 2011-06-30
KR101084728B1 true KR101084728B1 (ko) 2011-11-22

Family

ID=44404691

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090131249A KR101084728B1 (ko) 2009-12-24 2009-12-24 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서

Country Status (1)

Country Link
KR (1) KR101084728B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201513200D0 (en) * 2015-07-27 2015-09-09 Trw Ltd Control for electric power steering

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030225998A1 (en) 2002-01-31 2003-12-04 Khan Mohammed Noshad Configurable data processor with multi-length instruction set architecture
US20080282066A1 (en) 2007-05-09 2008-11-13 Michael David May Compact instruction set encoding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030225998A1 (en) 2002-01-31 2003-12-04 Khan Mohammed Noshad Configurable data processor with multi-length instruction set architecture
US20080282066A1 (en) 2007-05-09 2008-11-13 Michael David May Compact instruction set encoding

Also Published As

Publication number Publication date
KR20110074323A (ko) 2011-06-30

Similar Documents

Publication Publication Date Title
US20230409334A1 (en) Providing code sections for matrix of arithmetic logic units in a processor
US6615333B1 (en) Data processing device, method of executing a program and method of compiling
JP6591978B2 (ja) 命令セット変換システム及び方法
US8161266B2 (en) Replicating opcode to other lanes and modifying argument register to others in vector portion for parallel operation
US7386844B2 (en) Compiler apparatus and method of optimizing a source program by reducing a hamming distance between two instructions
CN101965554B (zh) 选择性地提交已执行指令的结果的系统和方法
EP2872988B1 (en) Controlling an order for processing data elements during vector processing
JP6718454B2 (ja) 選択的ページミス変換プリフェッチによってプログラムメモリコントローラにおけるページ変換ミスレイテンシを隠すこと
EP0994413A2 (en) Data processing system with conditional execution of extended compound instructions
KR20180066146A (ko) 벡터 데이터 전송 명령어
CN108319559B (zh) 用于控制矢量内存存取的数据处理装置及方法
JP2019511056A (ja) 複素数乗算命令
KR20180067582A (ko) 벡터 로드 명령어
JPH0496825A (ja) データ・プロセッサ
US6237083B1 (en) Microprocessor including multiple register files mapped to the same logical storage and inhibiting sychronization between the register files responsive to inclusion of an instruction in an instruction sequence
US8707013B2 (en) On-demand predicate registers
WO2000038050A1 (en) Instruction decomposition to branch and sequential sections
EP0982655A2 (en) Data processing unit and method for executing instructions of variable lengths
KR102458467B1 (ko) 벡터 생성 명령
US5951671A (en) Sharing instruction predecode information in a multiprocessor system
KR101084728B1 (ko) 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서
EP0924603A2 (en) Compiler controlled dynamic scheduling of program instructions
JP2861234B2 (ja) 命令処理装置
EP0912928A1 (en) A data address prediction structure utilizing a stride prediction method
WO1998020416A1 (en) A stride-based data address prediction structure

Legal Events

Date Code Title Description
A201 Request for examination
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: 20141110

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee