Implementation of an Instruction Buffer to process Variable-Length Instructions

가변 길이 명령어 처리를 위한 명령어 버퍼 구현

  • Published : 1998.12.01

Abstract

In this paper, we implement a buffer capable of handling short loops references to statistically lower the miss rate of variable-length instructions stored in the instruction buffer. MAU(Mark Appending Unit) takes the instructions as they are fetched from external memory, performs some initial decode operations and stores the results of the decode in the buffer for reducing multiple decodes when instructions are executed repeatedly such as in a loop. It includes a decision block of whether hit or not for effectively processing branch instructions Each module of the proposed architecture of processing variable-length instruction is described in VHDL structurally and behaviorally and whether it is working well or not is checked on V-System simulator of Model Technology Inc. We synthesized and simulated the architecture using an ASIC Synthesizer tool with 0.6$\mu\textrm{m}$ 5-Volt CMOS COMPASS library. Operation speed is up to 140MHz. The architecture includes about 17,000 gates.

본 논문에서는 명령어 버퍼에 저장되어 있는 가변 길이 명령어의 미스 율을 낮추기 위한 버퍼를 구현한다. 또한 반복적으로 수행되는 명령어들의 디코딩 시간을 줄이기 위해 외부에서 명령어를 패취(fetch)하여 초기 디코드 동작을 한 후 그 결과를 버퍼에 저장하는 MAU(Mark Appending Unit)를 둔다. 또한 분기명령어의 효과적인 처리를 위해 타겟 명령어의 히트 여부를 판단하는 회로를 내장하고 있다. 가변 길이 명령어를 처리하기 위한 각 모듈은 VHDL을 이용해 설계되었으며, Model Technology Inc.의 V-System를 사용하여 시뮬레이션 하였다. 합성 및 검증은 0.6㎛ 5-Volt CMOS TLM(Three Layer Metal) COMPASS 라이브러리를 이용한 ASIC Synthesizer 툴을 사용하였다. 최고 동작 속도는 약 140MHz까지이며, 총 게이트 수는 약 17,000개이다.

Keywords