IN-REGISTER DATA MANIPULATION FOR UNALIGNED BYTE WRITE USING DATA SHIFT IN REDUCED INSTRUCTION SET PROCESSOR

감소된 명령 세트 프로세서의 내부 레지스터의 데이타를 조정하는 방법 및 장치 RISC형(감소된 명령 세트)의 고성능 CPU는 표준화된 일정 명령크기를 사용하며, 단순화된 메모리 액세스 데이타 폭 및 어드레스 지정 모드만을 제공한다. 이명령 세트는 레지스터 대 레지스터 동작 및 레지스터의 로드 및 스토어 동작 방식으로 제한된다. 종래에 설정된 데이타 구조의 사용을 가능하게 하는 바이트 조정 명령은 비정렬된 로드 및 스토어 동작과 함께, 내부 레지스터에서의 바이트 추출, 삽입 및 마스킹을 행할 수 있는 유용성을 포함한다. 로드/로크 및...

Full description

Saved in:
Bibliographic Details
Main Authors WITEK, RICHARD T, SITES, RICHARD L
Format Patent
LanguageEnglish
Korean
Published 15.11.1999
Edition6
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:감소된 명령 세트 프로세서의 내부 레지스터의 데이타를 조정하는 방법 및 장치 RISC형(감소된 명령 세트)의 고성능 CPU는 표준화된 일정 명령크기를 사용하며, 단순화된 메모리 액세스 데이타 폭 및 어드레스 지정 모드만을 제공한다. 이명령 세트는 레지스터 대 레지스터 동작 및 레지스터의 로드 및 스토어 동작 방식으로 제한된다. 종래에 설정된 데이타 구조의 사용을 가능하게 하는 바이트 조정 명령은 비정렬된 로드 및 스토어 동작과 함께, 내부 레지스터에서의 바이트 추출, 삽입 및 마스킹을 행할 수 있는 유용성을 포함한다. 로드/로크 및 스토어/조건부 명령의 제공은 아토믹 바이트의 기입을 가능케 한다. 조건부 이동 명령을 제공함으로써, 많은 짧은 브랜치가 함께 제거될 수 있다. 조건부 이동 명령을 제공함으로써, 많은 짧은 브랜치가 함께 제거될 수 있다. 조건부 이동 명령은 레지스터를 레스트하며 조건이 일치할때 제 3레지스터로 제2레지스터를 이동시키는데, 이러한 기능은 짧은 브랜치를 위해 대용될 수 있으므로, 명령 스트림의 순차성을 유지할 수 있다. 브랜치의 타켓을 예상하고 이러한 예상에 따라 새로운 명령을 선추출함으로 인해 수행 능력을 가속화할 수 있다. 브랜치 예상 규칙은 모든 순방향 브랜치를 받아들이지 않고 모든 역방향 브랜치(통상,루프)를 받아들이므로써 수행된다. 또 다른 수행 능력에 대한 개선점은 점프 및 서브 루틴 명령으로 점프등을 위해 예상된 타겟 어드레스의 힌트를 제공하도록 표준 크기의 명령으로된 미사용 비트를 이용할 수 있다는 점이다. 이와 같이 타켓은 실제 어드레스가 계산되어 레지스터에 배치되기 전에 선추출될 수 있다. 아울러, 점프 명령의 미사용 변위 부분이 점프, 즉 점프, 서브 루틴으로 점프 및 서브 루틴으로 부터 복귀등에 대한 실제 형태를 정의 하는 필드를 포함할 수 있으므로 명령이 실행되기 전에 선추출을 할 수 있도록 스택에 예상된 타켓 어드레스를 배치할 수 있다. 프로세서는 가변 메모리 페이지 크기를 사용할 수 있기 때문에 가상 어드레스 지정을 수행하기 위한 번역 버퍼에서의 엔트리들이 최적으로 사용될 수 있다. 그래뉼어리티 힌트는 이 엔트리에 대한 페이지 크기를 한정하도록 페이지 테이블 엔트리에 가산된다. 또 다른 특징은 선추출 명령을 추가할 수 있다는 점인데, 이 명령은 데이타 블록이 사용되기전에 메모리 계층에 있는 고속 액세스 캐쉬로 데이타 블록을 이동 시키는 역할을 한다. A high-performance CPU of the RISC (reduced instruction set) type employs a standardized, fixed instruction size, and permits only simplified memory access data width and addressing modes. The instruction set is limited to register-to-register operations and register load/store operations. Byte manipulation instructions, included to permit use of previously-established data structures, include the facility for doing in-register byte extract, insert and masking, along with non-aligned load and store instructions. The provision of load/locked and store/conditional instructions permits the implementation of atomic byte writes. By providing a conditional move instruction, many short branches can be eliminated altogether. A conditional move instruction tests a register and moves a second register to a third if the condition is met; this function can be substituted for short branches and thus maintain the sequentiality of the instruction stream. Performance can be speeded up by predicting the target of a branch and prefetching the new instruction based upon this prediction; a branch prediction rule is followed that requires all forward branches to be predicted not-taken and all backward branches (as is common for loops) to be predicted as taken. Another performance improvement makes use of unused bits in the standard-sized instruction to provide a hint of the expected target address for jump and jump to subroutine instructions or the like. The target can thus be prefetched before the actual address has been calculated and placed in a register. In addition, the unused displacement part of the jump instruction can contain a field to define the actual type of jump, i.e., jump, jump to subroutine, return from subroutine, and thus place a predicted target address in a stack to allow prefetching before the instruction has been executed. The processor can employ a variable memory page size, so that the entries in a translation buffer for implementing virtual addressing can be optimally used. A granularity hint is added to the page table entry to define the page size for this entry. An additional feature is the addition of a prefetch instruction which serves to move a block of data to a faster-access cache in the memory hierarchy before the data block is to be used.
Bibliography:Application Number: KR19910010879