KR20010075681A - 프로세싱 시스템에서의 실행 인스트럭션 형성 방법 - Google Patents

프로세싱 시스템에서의 실행 인스트럭션 형성 방법 Download PDF

Info

Publication number
KR20010075681A
KR20010075681A KR1020017005617A KR20017005617A KR20010075681A KR 20010075681 A KR20010075681 A KR 20010075681A KR 1020017005617 A KR1020017005617 A KR 1020017005617A KR 20017005617 A KR20017005617 A KR 20017005617A KR 20010075681 A KR20010075681 A KR 20010075681A
Authority
KR
South Korea
Prior art keywords
parameter
bit
byte
bits
parameters
Prior art date
Application number
KR1020017005617A
Other languages
English (en)
Other versions
KR100764260B1 (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 롤페스 요하네스 게라투스 알베르투스
Publication of KR20010075681A publication Critical patent/KR20010075681A/ko
Application granted granted Critical
Publication of KR100764260B1 publication Critical patent/KR100764260B1/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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions
    • 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 Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

프로세싱 시스템내에서의 실행을 위한 가변 길이 인스트럭션이 형성된다. 각각의 인스트럭션은 하나 이상의 사전결정된 타입의 파라미터를 갖는 파라미터부와 연산코드부를 포함한다. 연산코드부는 수행될 연산, 인스트럭션 내의 파라미터의 갯수, 및 파라미터의 한정적인 특성을 지정한다. 파라미터는 압축가능한 데이터를 나타낼 수 있어서 인스트럭션 내의 파라미터의 사이즈를 감소시킬 수 있다.

Description

프로세싱 시스템에서의 실행 인스트럭션 형성 방법{VARIABLE-INSTRUCTION-LENGTH PROCESSING}
프로세싱 시스템 내에서의 데이터 조작은, 연산코드부와 파라미터부를 각각 포함하는 인스트럭션을 사용함으로써 달성된다. 연산코드부는 시스템 내의 프로세서에 의해 수행될 연산을 지정하며, 파라미터부는 메모리 내에 데이터를 위치시키기 위한 어드레스 및/또는 프로세서에 의해 조작될 갯수와 같은 데이터를 나타내는 하나 이상의 파라미터를 포함한다.
어드레스를 나타내는 하나 이상의 파라미터를 포함하고 있는 임의의 인스트럭션에서, 전체 비트 길이는 가장 큰 어드레스값을 나타낼 수 있을 정도로 충분히 커야만 한다. 이러한 비트 길이를 감소시키기 위한 공통의 기법은, 상이한 길이의 어드레스 파라미터들을 갖는 다양한 인스트럭션이 제공되는 어드레스 인덱싱을 사용하는 것이다. 가령, 상이한 길이의 오프셋 파라미터를 가지며 상이한 갯수의바이트를 필요로 하는 다양한 JUMP 인스트럭션이 제공될 수도 있다.
마찬가지로, 프로세서에 의해 조작될 갯수를 나타내는 하나 이상의 파라미터를 포함하는 임의의 인스트럭션에서, 전체 비트 길이는 최대의 갯수값을 나타낼 정도로 충분히 커야만 한다. 통상적으로, 프로세싱 시스템은 상이한 비트 길이의 용량을 갖는 다양한 메모리(레지스터, ROM, RAM 등)를 구비하고 있으며, 다양한 상이한 비트 길이의 갯수를 이동시킬 수 있다. 이러한 것을 용이하게 하기 위해, 이용가능한 각각의 비트 길이의 조합에 대해 상이한 MOVE 인스트럭션을 제공하는 것은 흔한 일이다. 가령, 모든 메모리의 용량이 동일한 경우(가령, 32비트의 용량)에서 조차, 다음과 같은 네개의 상이한 MOVE 인스트럭션이 요구될 수 있다. 즉, 그 인스트럭션은, 8비트의 수를 32비트 용량의 메모리 위치로 이동시키는 제 1 MOVE 인스트럭션과, 16비트의 수를 32비트 용량의 메모리 위치로 이동시키는 제 2 MOVE 인스트럭션과, 24비트 수를 32비트 용량의 메모리 위치로 이동시키는 제 3 MOVE 인스트럭션과, 32비트 수를 32비트 용량의 메모리 위치로 이동시키는 제 4 MOVE 인스트럭션을 포함한다.
전술한 처음의 세가지 일예에서, 프로세서는 이동된 워드를 32비트값으로 자동적으로 확장시킬 것이다.
본 발명은 프로세싱 시스템 내에서의 인스트럭션의 형성에 관한 것으로, 특히 가변 길이 인스트럭션의 형성에 관한 것이다.
도 1은 본 발명의 실시예를 설명할 때 유용한 일예의 프로세싱 시스템을 도시하는 블럭도이며,
도 2a 내지 도 2d는 본 발명을 설명할 때 사용되는 일예의 파라미터를 도시하며,
도 3a 내지 도 3l은 본 발명을 설명할 때 사용되는 일예의 인스트럭션을 도시하고 있다.
따라서, 본 발명의 목적은 프로그램용으로 필요한 메모리 공간을 감소시키는데 있다. 이러한 것은 연산코드의 수를 증가시키지 않고도 파라미터를 압축함으로써 달성된다.
본 발명에 따른 프로세싱 시스템 내에서의 실행 인스트럭션을 형성하는 방법은, 프로세서에 의해 수행될 적어도 하나의 연산을 결정하는 연산코드부를 제공하는 단계와,
각각의 데이터 값을 나타내는 적어도 하나의 파라미터를 포함하는 압축가능한 파라미터부를 제공하는 단계를 포함하며, 상기 파라미터부는 상기 적어도 하나의 파라미터의 압축 상태를 나타내는 확장 지시자를 포함한다.
본 명세서에 사용되는 '메모리'라는 단어는 일반적으로 그것이 사용되는 방식에 일관성이 있는 것으로서 해석되며 어떠한 제한도 없이 RAM, DRAM, ROM, 레지스터 및 그의 조합을 포함하는 다양한 타입의 휘발성 및 비휘발성 장치를 포함하는 것으로 해석된다는 것을 주목할 필요가 있다. 또한, 본 명세서에 사용되는 단어 '포인터'는 메모리 위치를 식별하는 임의의 값을 의미한다. 또한, '액세싱' 데이터는 메모리로부터 데이터를 얻거나 메모리에 데이터를 기입하는 것을 의미한다.
도 1의 프로세싱 시스템은 프로세서(10)와 메모리(20)를 포함한다. 일예의 프로세서(10)는 프로그램 카운터 레지스터에 의해 식별되는 인스트럭션들을 완전히 순차 배열하는데 클럭 펄스를 사용하는 하드웨어 가속형 유닛(hardware-accelerated unit)이다. 전형적으로, 프로그램 카운터 레지스터는 프로세서에 의해 판독되고 수행될 다음 메모리 위치를 포함하고 있다.
프로세서는 특히 문맥 레지스터 세트(context register set)(12), 인스트럭션 디코더(14), 산술 논리 유닛(16)을 포함한다. 메모리(20)는 본 실시예에서 데이터 및 시스템 변수를 저장하고 프로그램 방법 및/또는 프로시저의 기능을 용이하게 하기 위한 LIPO 스택으로서 기능하는 다수의 메모리 위치들을 갖는 RAM을 포함한다.
프로세서(10) 및 메모리(20)는 서로간의 통신 및 공통 버스에 접속된 기타 하드웨어와의 통신을 위해 공통 버스(30)에 접속되고 있다. 이 공통 버스는 어드레스, 인터럽트, 데이터, 판독 스트로브, 기록 스트로브 및 장치 선택 스트로브와 같은 데이터의 전달 회선을 각각 포함하고 있다. 바람직하게도, 이러한 공통 버스는 프로세서 및 메모리를 구비한 공통 실리콘 기판상에 적어도 부분적으로 형성되는 고속 버스이다.
문맥 레지스터 세트(12)는 프로그램 카운터 레지스터(121), 하나 이상의 범용 레지스터(123), 및 스택을 어드레싱하기 위해 사용되는 레지스터(124)를 포함하고 있다. 특히, 문맥 레지스터 세트 내의 레지스터는, 프로세서에 의해 액세스될 다음 메모리 어드레스를 식별하기 위한 지속적으로 갱신되는 프로그램 카운트 PC를 보관하고 있는 프로그램 카운터 레지스터(121)와, 메모리(20)로부터 판독되거나 산술 논리 유닛(16)에 의해 생성되는 데이터를 포함하고 있는 범용 레지스터(123)와, 액세스중인 현재의 스택 어드레스의 메모리내의 위치를 식별하는 스택 포인터 SP를 보관하기 위한 레지스터(124)를 포함한다.
인스트럭션 디코더(14)는 메모리(20)로부터 판독되는 인스트럭션을 하위 레벨의 연산 코드로 변환시키기 위한 시퀀서 혹은 마이크로 시퀀서와 같은 종래의 하드웨어 컴포넌트이다. 산술 논리 유닛(6)은 또한 종래의 하드웨어 컴포넌트이다.
프로세서에 의해 실행되는 적어도 일부의 인스트럭션들은 본 발명에 따른 파라미터부와 연산코드부를 포함하고 있다. 파라미터부는 프로세서에 의해 사용될 데이터를 나타내는 아래의 파라미터 타입들 중의 하나의 파라미터 타입을 포함할 수 있다.
UmNC는 압축되지 않은(NC) 비부호화형(U)의 데이터를 나타내는 파라미터로서 전체 m개의 비트 길이를 갖는다.
SmNC는 압축되지 않은(NC) 부호화형(S)의 데이터를 나타내는 파라미터로서 전체 m개의 비트 길이를 갖는다.
Um_C는 압축가능한(_C) 비부호화형(U)의 데이터를 나타내는 파라미터로서 전체 m개의 비트 길이를 갖는다.
Sm_C는 압축가능한(_C) 부호화형(S)의 데이터를 나타내는 파라미터로서 전체 m개의 비트 길이를 갖는다.
주목할 것은, 파라미터 타입들 UmNC 및 SmNC는 널리 알려져 있지만 본 발명의 후방 호환성을 나타내기 위해 포함되고 있다는 것이다. 또한 주목할 것은, 모든 경우에 m은 제각기의 파라미터에 의해 도시되는 최종의 압축되지 않은 데이터 내의 전체 비트의 수를 나타낸다는 것이다. 또한, 본 발명에 따라 형성된 각각의 파라미터는 사전 결정된 비트 길이의 하나 이상의 바이트를 포함한다. 전술한 실시예에서, 각각의 바이트는 8비트의 길이를 갖는다.
도 2a 및 도 2b는 각 타입의 파라미터 Um_C, Sm_C에 대한 일예의 포맷을 도시하고 있다. 이 일예에서, 각각의 파라미터는 두개의 바이트를 포함한다.
특히, 도 2a는 압축되지 않은 비부호화형의 데이터값을 나타내는 UmNC 타입의 2바이트 파라미터를 도시하는 것으로서 전체 16비트의 비트 길이(m=16)를 갖는다. 이 일예에서, 각 바이트의 파라미터는 그것이 나타내는 대응하는 바이트의 데이터와 동일하다.
도 2b는 압축되지 않은 부호화형의 데이터값을 나타내는 SmNC 타입의 2바이트 파라미터를 도시하는 것으로서 전체 16비트의 비트 길이(m=16)를 갖는다. 이 일예에서, 각 바이트의 파라미터는 그것이 나타내는 대응하는 바이트의 데이터와 동일하지만, 그 데이터값의 첫번째 비트는 부호 비트 s이다.
도 2c는 압축가능한 비부호화형의 데이터값을 나타내는 Um_C 타입의 2바이트 파라미터를 도시하는 것으로서 전체 16비트의 비트 길이(m=16)를 갖지만, 그 데이터가 압축되었는지의 여부에 따라 파라미터 그 자체의 비트 길이보다 클 수 있다. 이는 그 파라미터의 제 1 바이트내의 확장 비트 e로 도시된다. 이 e의 값은 프로세서가 파라미터의 제 1 바이트를 전체 16비트의 사이즈 데이터값으로 확장하는지 혹은 메모리로부터 제 2 바이트를 판독하는지를 결정한다.
도 2d는 압축가능한 부호화형의 데이터값을 나타내는 Sm_C 타입의 파라미터를 도시하는 것으로서 전체 16비트의 비트 길이(m=16)를 갖지만, 데이터가 압축되었는지의 여부에 따라 파라미터 그 자체의 비트 길이보다 클 수 있다. 이는 그 파라미터의 제 1 바이트내에 포함된 확장 비트 e로 도시되며, 이 e는 프로세서가 파라미터의 제 1 바이트를 전체 16비트의 사이즈 데이터값으로 확장하는지 혹은 메모리로부터 제 2 바이트를 판독하는지를 결정하는 값을 갖는다. 제 2 비트는 부호화 비트 s이다.
하나 이상의 파라미터 타입 UmNC, SmNC, Um_C, Sm_C를 포함하는 각각의 인스트럭션에서, 특정 연산코드는 프로세서에 의해 수행될 연산과, 인스트럭션내의 상기 파라미터의 갯수와, 각각의 파라미터의 한정적인 특성들을 결정하며, 이 한정적 특성은, 그 파라미터가 압축가능한 데이터를 나타내는지의 여부의 특성과, 그 파라미터에 의해 도시되는 데이터의 비압축 길이 m에 관한 특성과, 그 파라미터가 부호화형인지 비부호화형인지에 관한 특성을 포함하고 있다.
멀티 바이트 파라미터의 경우, 바이트들이 프로세서에 의해 판독되고 정렬되는 순서가 결정되어야만 한다. 이러한 것은 다양한 방식으로 행해질 수 있는데, 가령 각각의 파라미터들이 연관되는 특정 인스트럭션의 정의 순서에 의하거나, 특정 프로세서에 대한 고정된 파라미터 정렬 순서에 의하거나, 정렬 순서를 지정하는 파라미터 자체의 코드 순서에 의해 달성될 수 있다.
바람직하게도 인스트럭션의 연산코드부는 본래부터 파라미터의 갯수와 그 특성을 지정하기 위해 포맷된다. 가령, ALU(16)가 오퍼랜드 A와 오퍼랜드 B를 가산하고 그 합을 어드레스 C에 저장하는 ADD 인스트럭션에 대한 연산코드는 각각의 오퍼랜드 A, B, C에 대해 하나의 파라미터가 존재하는 세개의 파라미터를 포함할 것이다. 주목할 것은, 가령 오퍼랜드 A, B가 압축가능한 값을 가질 수 있으며, C는 잠재적으로 압축가능한 수일 수 있는 베이스 어드레스로부터의 인덱스일 수 있다는 것이다. 또한, 인스트럭션 그 자체의 정의는 각각의 파라미터의 적절한 특성을 지정할 것이다. 다른 일예로서, 프로세서(10)가 값 M에 의해 표현되는 메모리 공간을 제공할 스택 내의 어드레스에 대한 레지스터(124)내의 스택 포인터값 SP를 감분시키는 ENTER 인스트럭션에 대한 연산코드는 단일의 비부호화형의 파라미터 M을 포함할 것이다. M의 사이즈는 압축될 수 있는데 이는 마치 SP에 의해 위치지정되는 현재의 어드레스에 대한 인덱스가 된다. 인스트럭션 그 자체의 정의는 또한 파라미터 M의 다른 적절한 특성을 지정할 것이다.
프로세서(10)는 지속적으로 갱신되는 프로그램 카운터 PC에 의해 표현되는 메모리 어드레스에 액세싱함으로써 각각의 인스트럭션을 바이트 순으로 형성한다. 바람직하게도 이러한 것은 프로세서 그 자체 내의 캐시 메모리와 같은 고속 액세스 메모리내의 위치에 대한 포인트에 역점을 두고 있다. 먼저, 프로세서는 연산코드를 판독하고 그 다음에 특정 연산코드에 의해 정의된 파라미터의 갯수를 판독한다.도 3a 내지 도 3j는 전술한 것이 상이한 타입의 파라미터에 대해 어떻게 행해지는지에 관한 일예들을 도시하고 있다. 각각의 파라미터는 연산코드부와 그 다음에 하나 이상의 파라미터를 포함하고 있는 파라미터부를 포함하고 있다.
특히, 도 3a는 UmNC 타입의 단일의 1바이트 파라미터를 갖는 인스트럭션을 도시하고 있다. 본 실시예에서 m=8이며, 8비트 파라미터는 그것이 나타내는 데이터값과 동일하다.
도 3b는 SmNC 타입의 단일의 1바이트 파라미터를 갖는 인스트럭션을 도시하고 있다. 본 실시예에서 m=8이며 8비트 파라미터는 부호화 비트 s=0을 포함하고 그것이 나타내는 데이터값과 동일하다.
도 3c는 Um_C 타입의 단일 2바이트 파라미터를 갖는 인스트럭션을 도시하고 있다. 본 실시예에서 m=16이며, 그 파라미터의 제 1 바이트는 제 1 바이트가 압축되지 않았음을 나타내는 확장 비트값 e=0을 포함한다. 따라서, 프로세서는 완전한 16비트 파라미터를 형성하기 위해서는 하나 이상의 바이트를 판독해야만 한다.
도 3d는 Um_C 타입의 두개의 1바이트 파라미터를 갖는 인스트럭션을 도시하고 있다. 각각의 파라미터에 대해, m=16이며 제 1 비트는 값 e=1을 갖는 확장 비트이다. 이러한 것은 프로세서(10)에게 각각의 파라미터를 파라미터에 의해 표현되는 전체 16비트의 데이터값으로 확장할 것을 통지한다. 이러한 것은 어떠한 압축 기법이 본 발명에 대한 특정 연산코드와 관련되었는지에 의해 행해질 수 있다. 가령, 만약 어느 하나의 파라미터가 16비트 레지스터 내로 기록될 인덱스 값을 나타내지만 그 최대값이 7비트 혹은 그 미만의 비트로 형성될 수 있다면, 그 파라미터는 확장 비트를 폐기하고 남아있는 7개 비트의 앞에 사전결정된 값의 9개의 비트(가령 9개의 제로)를 삽입함으로써 16비트로 확장될 수 있다. 대안적으로, 8비트의 파라미터는 특정 연산코드와 관련한 압축 알고리즘에 의해 전체 16 비트로 확장될 수 있다.
도 3e는 Um_C 타입의 단일의 4바이트 파라미터를 갖는 인스트럭션을 도시하고 있다. 본 실시예에서, m=32이며, 각각의 제 1의 3개 바이트는 e=0의 확장 비트값을 포함한다. 프로세서는 세개의 확장 비트값을 판독하고 폐기하며, 제 1의 3개 바이트의 각각으로부터 7개의 데이터 비트를 판독하며, 제 4 바이트로부터 8개의 데이터 비트를 판독하며, 파라미터를 32비트로 확장하기 위해 남아있는 29비트의 앞에 사전결정된 값의 세개 비트(가령, 세개의 제로)를 삽입한다.
도 3f는 Um_C 타입의 단일의 3바이트 파라미터를 갖는 인스트럭션을 도시하고 있다. 본 실시예에서, m=32이며, 제 1의 두개의 바이트 각각은 e=0의 확장 비트값을 포함하며, 제 3 바이트는 e=1의 확장 비트값을 포함한다. 프로세서는 세개의 바이트의 각각으로부터 7개의 데이터 비트를 판독하고, 세개의 확장 비트값을 판독하여 폐기하고, 다음에 파라미터를 32비트로 확장하기 위해 남아있는 21 비트의 앞에 사전결정된 값의 11비트(폐기된 확장 비트의 각각에 대해 하나씩과 그리고 e=1의 값을 갖는 확장 비트에 응답하는 8개 비트)를 삽입한다. 만약 완전한 데이터값 중의 비어있는 비트에 제로값을 채움으로써 확장이 달성된다면, 그 프로세서는 3바이트 파라미터에 의해 제공되는 21 데이터 비트의 앞에 전술한 값의 11비트를 삽입하게 될 것이다. 본 발명의 바람직한 실시예에서 주목할 것은, 파라미터들이 메모리에 저장되고, 그의 역순으로, 즉 최하위 바이트로부터 최상위 바이트의 순으로 메모리로부터 판독된다는 것이다. 따라서 도 3f의 일예에서는, 판독된 제 1 바이트의 파라미터는 최하위 7비트의 데이터값 [1010101]을 형성하며, 판독된 제 2 바이트의 파라미터는 그 다음의 상위 7비트의 데이터값 [1110000]을 형성하며, 판독된 제 3 바이트의 파라미터는 최상위 7비트의 데이터값 [1100110]을 형성하며, 11개의 제로가 파라미터의 최종 판독 3바이트의 앞에 삽입되어 완전한 데이터값 [00000000000110011011100001010101]을 형성한다.
도 3g는 Sm_C 타입의 단일의 2바이트 파라미터를 갖는 인스트럭션을 도시하고 있다. 본 실시예에서, m=16이며, 제 1 바이트는 e=0의 확장 비트와 부호화 비트 s=0를 포함한다. 따라서, 프로세서는 두개의 바이트를 판독하고 판독된 부호화 비트와 남아있는 14개의 데이터 비트 사이에 1비트의 사전결정된 값을 삽입한다. 단순화를 위해, 바람직하게도 이 사전결정된 값은 부호화 비트의 값과 동일하다.
도 3h는 Sm_C 타입의 단일의 1바이트 파라미터를 갖는 인스트럭션을 도시하고 있다. 본 실시예에서, m=16이며, 단일 바이트는 e=1의 확장 비트값과 s=1의 부호화 비트값을 포함하고 있다. 따라서, 프로세서는 단일 바이트를 판독하고 판독된 부호화 비트와 남아있는 6개 비트 사이에 9개 비트의 사전결정된 값(가령, 부호화 비트)를 삽입한다.
도 3i는 Sm_C 타입의 단일의 4바이트 파라미터를 갖는 인스트럭션을 도시하고 있다. 본 실시예에서, m=32이며, 제 1 바이트는 e=0의 확장 비트값과 s=0의 부호화 비트값을 포함하며, 제 2 및 제 3 바이트의 각각은 e=0의 확장 비트값을 포함하며, 제 4 바이트는 남아있는 8비트의 데이터값을 포함하고 있다. 따라서, 프로세서는 4바이트를 판독하고 판독된 부호화 비트와 남아있는 28 데이터 비트 사이에 3비트의 사전결정된 값, 가령 부호화 비트값을 삽입한다.
도 3j는 Sm_C 타입의 단일의 3바이트 파라미터를 갖는 인스트럭션을 도시하고 있다. 본 실시예에서, m=32이며, 제 1 바이트는 e=0의 확장 비트값과 s=1의 부호화 비트값을 포함하며, 제 3 바이트는 e=1의 확장 비트값을 포함한다. 따라서, 프로세서는 변경없이 제 1의 두개의 바이트를 판독하며 제 3 바이트를 8비트만큼 확장하여 파라미터에 의해 표현되는 전체 32 비트 데이터값을 형성한다.
전술한 일예에서, 각각의 파라미터는 바이트 순으로 판독되며, 파라미터를 확장할 것인지의 여부의 판정은 각각의 바이트 내의 확장 필드를 판독함으로써 결정된다. 확장 필드에 의해 점유되는 공간은 전체 어드레스가능한 범위를 감소시킨다. 대안으로서, 확정 필드는 단지 파라미터의 제 1 바이트에만 포함될 수도 있다. 이러한 경우, 파라미터는 항상 압축된 단일 바이트의 형태 혹은 확장 형태로 저장될 것이다.
도 3k 및 도 3l은 파라미터의 필드 내에서 전술한 것이 어떻게 행해질 수 있는지를 나타내는 일예를 도시하고 있다. 각각의 도면은 32 비트의 데이터값을 나타내는 파라미터의 일예를 도시하고 있다. 연산코드 다음의 제 1 바이트는 단일의 확장 비트 e를 포함하는 비트 필드를 포함하고 있다. 확장 비트의 값은 두개의 이용가능한 상태 중 어느 것이 존재하는 지를 나타낸다. 즉, 파라미터부가 단지 32 비트로 확장되어야만 하는 단일의 확장 파라미터만을 포함하던지 혹은 확장된 32 비트의 데이터값을 나타내는 4개의 바이트를 포함하고 있다.
도 3k 및 도 3l을 참조하면, 도 3k는 Um_C 타입의 단일 파라미터를 갖는 인스트럭션을 도시하고 있다. 본 실시예에서, m=32이며, 파라미터의 제 1 바이트는 e=1의 확장 비트를 포함하고 있다. 이러한 것은 프로세서에게 파라미터를 파라미터에 의해 표현되는 전체 32 비트의 데이터값으로 확장할 것을 통지한다.
도 3l은 Um_C 타입의 단일 파라미터를 갖는 인스트럭션을 도시하고 있다. 본 실시예에서, m=32이지만 파라미터의 제 1 바이트는 e=0의 확장 비트값을 포함하고 있다. 이는 전체 데이타값을 형성하도록 프로세서에게 세개 이상의 바이트를 판독할 것을 통지한다.
본 발명의 특정 실시예가 기술되고 있지만, 본 발명의 영역 내에서 수많은 대안의 실시예가 이용될 수 있다. 가령, 원래부터 연산코드 내에서 관련된 파라미터의 갯수를 지정하기 보다는, 전술한 관련된 파라미터의 갯수와 기타 파라미터 관련 특성을 나타내는데 파라미터들 내의 비트 필드들이 이용될 수 있다. 여기서 상기 기타 파라미터 관련 특성에서는 파라미터에 의해 표현되는 데이터값 내의 비트의 갯수 m과, 파라미터 내의 바이트의 갯수와, 파라미터가 압축된 데이터값을 나타내는지에 관한 정보 등이 포함된다.

Claims (13)

  1. 프로세싱 시스템 내에서의 실행 인스트럭션 형성 방법에 있어서,
    a) 프로세서에 의해 수행될 적어도 하나의 연산을 결정하기 위한 연산코드부를 제공하는 단계와,
    b) 각각의 데이터값을 나타내는 적어도 하나의 파라미터를 포함하는 파라미터부를 제공하는 단계를 포함하되,
    상기 파라미터부는 상기 적어도 하나의 파라미터 중의 아래의 한정적인 특성, 즉
    ⅰ) 상기 파라미터에 의해 표현되는 데이터값 내의 비트의 갯수(m)과,
    ⅱ) 상기 파라미터의 바이트의 갯수와,
    ⅲ) 상기 파라미터가 압축된 데이터값을 나타내는지에 관한 정보
    의 특성 중 적어도 하나를 나타내는 지시자를 포함하는
    프로세싱 시스템 내에서의 실행 인스트럭션 형성 방법.
  2. 제 1 항에 있어서,
    상기 파라미터부는 다음의 타입들, 즉
    (1) 사정결정된 길이의 압축가능하고 비부호화된 파라미터와,
    (2) 사전결정된 길이의 압축가능하고 부호화된 파라미터
    중의 하나의 적어도 하나의 파라미터를 포함하는 프로세싱 시스템 내에서의 실행 인스트럭션 형성 방법.
  3. 제 1 항에 있어서,
    상기 연산코드는 상기 파라미터부 내의 파라미터의 갯수를 정의하는 프로세싱 시스템 내에서의 실행 인스트럭션 형성 방법.
  4. 제 1 항에 있어서,
    상기 연산코드는 상기 적어도 하나의 파라미터의 압축되지 않은 길이를 정의하는 프로세싱 시스템 내에서의 실행 인스트럭션 형성 방법.
  5. 제 1 항에 있어서,
    상기 연산코드는 상기 적어도 하나의 파라미터가 부호를 포함하고 있는지의 여부를 정의하는 프로세싱 시스템 내에서의 실행 인스트럭션 형성 방법.
  6. 제 1 항에 있어서,
    상기 적어도 하나의 파라미터는 메모리 어드레스를 나타내는 프로세싱 시스템 내에서의 실행 인스트럭션 형성 방법.
  7. 제 1 항에 있어서,
    상기 파라미터부는 다수의 파라미터를 포함하며, 상기 연산코드는 상기 파라미터들의 정렬 순서를 결정하는 프로세싱 시스템 내에서의 실행 인스트럭션 형성 방법.
  8. 제 1 항에 있어서,
    상기 적어도 하나의 파라미터는 파라미터 관련 특성을 나타내는 비트 필드를 포함하는 프로세싱 시스템 내에서의 실행 인스트럭션 형성 방법.
  9. 제 8 항에 있어서,
    상기 비트 필드는 다음의, 즉
    a) 상기 적어도 하나의 파라미터에 의해 표현되는 데이터값 내의 비트들의 갯수와,
    b) 상기 적어도 하나의 파라미터 내의 바이트들의 갯수와,
    c) 상기 적어도 하나의 파라미터가 압축된 데이터값을 나타내는지에 관한 정보
    중의 적어도 하나를 나타내는 프로세싱 시스템 내에서의 실행 인스트럭션 형성 방법.
  10. 프로세싱 시스템 내에서의 실행 인스트럭션의 형성 방법에 있어서,
    a) 프로세스에 의해 수행될 적어도 하나의 연산을 결정하는 연산코드부를 제공하는 단계와,
    b) 각각의 데이터값을 나타내는 적어도 하나의 파라미터를 포함하는 압축가능한 파라미터부를 제공하는 단계를 포함하되,
    상기 파라미터부는
    e) 상기 적어도 하나의 파라미터의 압축 상태를 나타내는 확장 지시자를 포함하는
    프로세싱 시스템 내에서의 실행 인스트럭션 형성 방법.
  11. 제 10 항에 있어서,
    상기 적어도 하나의 파라미터는 확장 지시자가 포함되는 단일의 바이트를 포함하는 프로세싱 시스템 내에서의 실행 인스트럭션 형성 방법.
  12. 제 10 항에 있어서,
    상기 적어도 하나의 파라미터는 다수의 바이트들을 포함하되, 각각의 바이트는 확장 지시자를 포함하는 프로세싱 시스템 내에서의 실행 인스트럭션 형성 방법.
  13. 제 10 항에 있어서,
    상기 적어도 하나의 파라미터는 다수의 바이트를 포함하되, 상기 바이트들 중의 적어도 하나는 확장 지시자를 포함하는 프로세싱 시스템 내에서의 실행 인스트럭션 형성 방법.
KR1020017005617A 1999-09-07 2000-08-30 프로세싱 시스템에서의 실행 인스트럭션 형성 방법 KR100764260B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/391,647 US7376814B1 (en) 1999-09-07 1999-09-07 Method for forming variable length instructions in a processing system
US09/391,647 1999-09-07

Publications (2)

Publication Number Publication Date
KR20010075681A true KR20010075681A (ko) 2001-08-09
KR100764260B1 KR100764260B1 (ko) 2007-10-05

Family

ID=23547411

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017005617A KR100764260B1 (ko) 1999-09-07 2000-08-30 프로세싱 시스템에서의 실행 인스트럭션 형성 방법

Country Status (7)

Country Link
US (1) US7376814B1 (ko)
EP (1) EP1125193A1 (ko)
JP (1) JP2003508863A (ko)
KR (1) KR100764260B1 (ko)
CN (1) CN100378652C (ko)
TW (1) TWI234109B (ko)
WO (1) WO2001018643A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020008101A (ko) * 2001-12-12 2002-01-29 주식회사 애니콤소프트웨어 데이터의 비트 인덱스 압축방법
KR101158534B1 (ko) * 2009-09-21 2012-06-21 자바정보기술 주식회사 다양한 환경에서의 데이터 처리를 위한 동적 프로세스 관리 시스템

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7917734B2 (en) * 2003-06-30 2011-03-29 Intel Corporation Determining length of instruction with multiple byte escape code based on information from other than opcode byte
US7263621B2 (en) * 2004-11-15 2007-08-28 Via Technologies, Inc. System for reducing power consumption in a microprocessor having multiple instruction decoders that are coupled to selectors receiving their own output as feedback
US7430560B1 (en) * 2005-07-22 2008-09-30 X-Engines, Inc. Multi-level compressed lock-up tables formed by logical operations to compress selected index bits
US7921088B1 (en) * 2005-07-22 2011-04-05 X-Engines, Inc. Logical operations encoded by a function table for compressing index bits in multi-level compressed look-up tables
US7827218B1 (en) 2006-11-18 2010-11-02 X-Engines, Inc. Deterministic lookup using hashed key in a multi-stride compressed trie structure
US8149711B2 (en) * 2007-07-25 2012-04-03 Silicon Image, Inc. Data stream control for network devices
CN101859325B (zh) * 2010-06-07 2012-07-11 华为技术有限公司 一种数据表项的查找处理方法和装置
JP4862100B1 (ja) * 2011-03-25 2012-01-25 好一 北岸 中央演算処理装置及びマイクロコンピュータ

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4363091A (en) 1978-01-31 1982-12-07 Intel Corporation Extended address, single and multiple bit microprocessor
US4236206A (en) 1978-10-25 1980-11-25 Digital Equipment Corporation Central processor unit for executing instructions of variable length
CA1174370A (en) 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
US4530050A (en) 1981-08-26 1985-07-16 Hitachi, Ltd. Central processing unit for executing instructions of variable length having end information for operand specifiers
JPS58146941A (ja) 1982-02-26 1983-09-01 Hitachi Ltd マイクロプログラム制御デ−タ処理装置
US4586130A (en) 1983-10-03 1986-04-29 Digital Equipment Corporation Central processing unit for a digital computer
JPS623338A (ja) * 1985-06-28 1987-01-09 Yokogawa Hewlett Packard Ltd 直接値処理方式
US5307474A (en) * 1987-09-30 1994-04-26 Mitsubishi Denki Kabushiki Kaisha Apparatus and method for processing literal operand computer instructions
JPH0769806B2 (ja) * 1988-10-14 1995-07-31 三菱電機株式会社 データ処理装置
JPH0810428B2 (ja) 1988-12-26 1996-01-31 三菱電機株式会社 データ処理装置
US5109495A (en) * 1989-02-03 1992-04-28 Digital Equipment Corp. Method and apparatus using a source operand list and a source operand pointer queue between the execution unit and the instruction decoding and operand processing units of a pipelined data processor
CA2037708C (en) 1990-05-04 1998-01-20 Richard J. Eickemeyer General purpose compound apparatus for instruction-level parallel processors
JP3004108B2 (ja) * 1991-11-27 2000-01-31 株式会社東芝 情報処理装置
JP3547740B2 (ja) 1992-03-25 2004-07-28 ザイログ,インコーポレイテッド 命令高速解読パイプラインプロセッサ
US5673407A (en) * 1994-03-08 1997-09-30 Texas Instruments Incorporated Data processor having capability to perform both floating point operations and memory access in response to a single instruction
JP3505266B2 (ja) 1995-06-15 2004-03-08 三洋電機株式会社 プログラム実行装置
WO1997022922A1 (en) 1995-12-15 1997-06-26 Intel Corporation Instruction encoding techniques for microcontroller architecture
US5787302A (en) 1996-05-15 1998-07-28 Philips Electronic North America Corporation Software for producing instructions in a compressed format for a VLIW processor
US5867681A (en) * 1996-05-23 1999-02-02 Lsi Logic Corporation Microprocessor having register dependent immediate decompression
JP3745039B2 (ja) * 1996-08-01 2006-02-15 株式会社ルネサステクノロジ 遅延命令を有するマイクロプロセッサ
EP0843253B1 (en) 1996-11-15 2001-08-08 STMicroelectronics S.r.l. A method for reducing the number of bits needed for the representation of constant values in a data processing device
DE19826826A1 (de) 1998-06-16 1999-07-15 Siemens Ag Verfahren zum Decodieren und Ausführen von Befehlen in einem RISC-Prozessor
US6338132B1 (en) * 1998-12-30 2002-01-08 Intel Corporation System and method for storing immediate data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020008101A (ko) * 2001-12-12 2002-01-29 주식회사 애니콤소프트웨어 데이터의 비트 인덱스 압축방법
KR101158534B1 (ko) * 2009-09-21 2012-06-21 자바정보기술 주식회사 다양한 환경에서의 데이터 처리를 위한 동적 프로세스 관리 시스템

Also Published As

Publication number Publication date
US7376814B1 (en) 2008-05-20
CN1335958A (zh) 2002-02-13
WO2001018643A1 (en) 2001-03-15
TWI234109B (en) 2005-06-11
EP1125193A1 (en) 2001-08-22
KR100764260B1 (ko) 2007-10-05
JP2003508863A (ja) 2003-03-04
CN100378652C (zh) 2008-04-02

Similar Documents

Publication Publication Date Title
US4825355A (en) Instruction format for program control type data processing systems
US6205534B1 (en) Apparatus and method for processing data with a plurality of flag groups
US20050198471A1 (en) Micro-controller for reading out compressed instruction code and program memory for compressing instruction code and storing therein
KR19980032137A (ko) 벡터프로세서를 위한 요소선택 메카니즘
JPH08237138A (ja) 圧縮装置および圧縮方法
KR20100126690A (ko) 널-종료 문자열 동작을 가속화하는 방법
US5935240A (en) Computer implemented method for transferring packed data between register files and memory
KR100764260B1 (ko) 프로세싱 시스템에서의 실행 인스트럭션 형성 방법
US6711669B2 (en) System and method for storing immediate data
US4591829A (en) Run length code decoder
US5117488A (en) Microprogram controlled microprocessor having a selectively expandable instruction code length including independent description of operand addressing and a type of operation for an operand by single instruction in a common coding scheme
US5357620A (en) Bit addressing system
JPH1153187A (ja) プロセッサ
US6499099B1 (en) Central processing unit method and apparatus for extending general instructions with extension data of an extension register
US7068192B1 (en) System and method for encoding and decoding variable-length data
US20030046516A1 (en) Method and apparatus for extending instructions with extension data of an extension register
EP0318699B1 (en) Operation apparatus processing data of arbitrary length
US7676651B2 (en) Micro controller for decompressing and compressing variable length codes via a compressed code dictionary
US6886159B2 (en) Computer system, virtual machine, runtime representation of object, storage media and program transmission apparatus
US6931508B2 (en) Device and method for information processing
US5572334A (en) Variable-length coding device
US6081869A (en) Bit-field peripheral
JPS62143140A (ja) 条件付分岐命令設定方式
JP3182497B2 (ja) 演算処理装置および命令変換装置
JPH01185749A (ja) 可変長ビット列格納方式

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
N231 Notification of change of applicant
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20120830

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130830

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140828

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 13