KR19990076967A - 처리 장치 및 메모리내의 명령 판독 - Google Patents

처리 장치 및 메모리내의 명령 판독 Download PDF

Info

Publication number
KR19990076967A
KR19990076967A KR1019980705095A KR19980705095A KR19990076967A KR 19990076967 A KR19990076967 A KR 19990076967A KR 1019980705095 A KR1019980705095 A KR 1019980705095A KR 19980705095 A KR19980705095 A KR 19980705095A KR 19990076967 A KR19990076967 A KR 19990076967A
Authority
KR
South Korea
Prior art keywords
instruction
instructions
branch
memory
processing unit
Prior art date
Application number
KR1019980705095A
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 요트.게.아. 롤페즈
Publication of KR19990076967A publication Critical patent/KR19990076967A/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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

처리 유닛에 대한 명령이 다수의 메모리 뱅크에 기억되며, 연속하는 명령들은 연속하는 다른 메모리 뱅크에 기억된다. 명령의 실행이 개시될 때는 언제든지, 한 명령 사이클 보다 뒤에 실행될 한 명령의 판독이 또한 개시된다. 결과적으로, 다수의 명령이 다른 메모리 뱅크로부터 병행하여 판독되어 진다. 명령의 판독후 및 명령의 실행 개시전에, 명령은 파이프라인을 통과하며, 여기에서 처리 장치는 관련 명령이 브랜치 명령인지를 검출한다. 만일 그렇다면, 처리 유닛은 브랜치 타깃 명령으로부터 다수의 명령을 병행하여 판독을 개시한다. 브랜치가 취해지는 것이 이후 스테이지에서 나타난다면, 상기 다수 명령은 파이프라인에 병행하여 적재된다.

Description

처리 장치 및 메모리내의 명령 판독
이러한 종류의 처리 장치는 국제 특허 출원 번호 WO 93/14457 에 공지되어 있다. 프로그램 실행 동안 연속적인 명령이 실행되도록 메모리로부터 처리 유닛으로 적재된다. 하지만, 현재의 처리 유닛은 일반적으로 명령이 메모리로부터 판독될 수 있는 것보다 빠르게 명령을 실행할 수 있다. 따라서, 특정 단계가 취해지지 않는다면, 메모리는 처리 장치의 전체 속도에 대하여 제한 요소가 된다. 이러한 문제는 "메모리 병목" 이라 한다.
메모리 병목을 피하기 위한 여러 단계들이 당 기술 분야에 공지되어 있다. 실례로, "캐싱" 기술이 알려져 있다. 캐싱은 캐시 방법에 따라 처리 유닛에 의해 실행되도록 예기되는 명령을 절감하는 고속 캐시 메모리를 활용한다. 이러한 캐시 메모리는 값비싼데, 이는 처리 유닛의 명령 사이클 마다 명령을 판독하는데 충분히 빨라야하기 때문이다. 더욱이, 캐싱 기술은 일반적으로 매우 복잡하며, 따라서 상당한 회로 경비를 요구한다.
종래 기술로부터, 단일 명령을 판독하는데 필요한 것보다 많은 메모리를 만드는 것 또한 공지되어 있다. 이러한 것은 다수의 연속하는 명령이 메모리의 한 판독 사이클에서 병행하여 동시될 판독될 수 있다는 것을 의미한다. 이러한 명령은 매우 빠르게 판독될 수 있는 프리페치 버퍼에 기억되며, 이후 이들은 처리 유닛에 연속하여 공급된다. 처리 유닛이 프리페치 버퍼로부터 다수의 명령을 실행하는 동안, 연속적으로 새로운 메모리 판독 사이클이 다음의 다수 명령에 대해 개시된다. N 명령이 메모리로부터 동시에 판독될 때, 최적의 상황으로 메모리의 유효한 속도가 인자 N 만큼 증가되어, 메모리는 처리 장치의 속도와 관련하여 더 이상 제한적 요인이 되지 않게 된다. 이러한 기술은 단지 처리 유닛이 "논리" 시퀀스(처리 유닛에 의한 재조정 없이 판독 유닛에 의해 규정되는 시퀀스를 의미함)의 명령을 실행하는 경우에만 최적의 결과를 제공한다. 이러한 것은 정상적인 경우가 된다. 하지만, 처리 유닛에 의해 실행되는 명령들은 또한 브랜치 명령들을 포함할 수 있으며, 이들 명령은 다른 명령 실행 시퀀스를 발생시킨다. 따라서, 브랜치 명령에 기인하여, 브랜치 버퍼 내용 일부(아웃고잉 브랜치 이후 또는 인커밍 브랜치 이전)가 쓸모없게 된다. 메모리의 이미 개시된 판독 역시 쓸모없게 된다. 이러한 것은 다시 프로세서의 속도를 제한한다.
본 발명은 처리 유닛, 처리 유닛에 대한 명령을 기억하는 메모리, 논리 시퀀스로 메모리로부터 명령을 판독하여 논리 시퀀스로 실행되도록 처리 유닛에 명령을 공급하기 위한 판독 유닛을 포함하는 처리 장치에 관한 것이다.
도 1은 본 발명에 따른 처리 장치의 한 실시예를 도시하는 도면.
도 2는 도 1의 처리 장치 동작의 타이밍도.
도 3은 본 발며에 따른 처리 장치의 다른 실시예를 도시하는 도면.
도 4는 도 3에 도시된 처리 장치 동작의 타이밍도.
본 발명의 목적은 메모리 병목이 보다 적은 경비를 사용하여 제거될 수 있는 처리 장치를 제공하는 것이다.
본 발명에 따른 처리 장치는 메모리가 다수의 독립적으로 어드레스가능한 메모리 뱅크를 구비하고, 논리적으로 연속적인 명령들이 다른 메모리 뱅크에 기억되는 것을 특징으로 하며, 판독 유닛이 병행하여 다른 메모리 뱅크로부터 다수의 명령들을 판독하여, 처리 유닛이 명령을 실행하기 시작하는 매 시간 그 순간에 메모리 뱅크로부터 병행하여 판독되는 명령에 논리적으로 이어지는 명령을 판독하기 시작함으로써 상기 다수의 명령을 재공급하도독 배치되는 것을 특징으로 한다.
각각의 연속적인 명령은 다음의 메모리 뱅크에 기억된다. 이러한 목적을 위하여, 처리 유닛은 적절하게 고정된 길이의 명령 만을 갖는다. 본 발명에 따라, 명령은 파이프라인의 방식으로 검색되며, 통상 다수의 명령은 판독의 다른 스테이지에 있게 된다. 결과적으로, 명령은 하나의 메모리 뱅크를 판독하는데 요구되는 기간 보다 짧은 중간의 기간으로 동일한 버스를 통하여 프로세서에 연속적으로 공급될 수 있다. 하나의 새로운 명령이 실행될 각 명령에 대하여 어드레스되므로, 어드레스되는 명령의 수는 엄격히 필요한 것보다는 많지 않다. 이러한 것은 하나 보다 많은 명령이 동일한 메모리 뱅크로부터 동시에 판독되는 경우 발생하는 메모리 충돌의 위험을 감소시킨다.
본 발명에 따른 처리 장치 실시예의 처리 유닛은 적어도 메모리 뱅크의 어드레싱과 처리 유닛으로 판독된 명령의 적용 사이에 요구되는 기간에 N 개 명령의 연속적인 실행 만을 개시할 수 있으며, 판독 유닛은 다양한 메모리 뱅크로부터 병행하여 N 명령을 판독하도록 배치된다. 따라서, 처리 유닛이 메모리에 의해 속도가 늦어지지 않게 되는 정확히 그 만큼의 명령이 병행하여 판독될 수 있다. 결과적으로, 새롭게 어드레스될 수는 없는, 판독시 인게이지되는 메모리 뱅크의 수는 최소화된다. 따라서, 적어도 N 메모리 뱅크가 바람직하게 된다.
본 발명에 따른 처리 장치 실시예의 처리 유닛은 특히 브랜치 명령을 실행하도록 배치되고, 이후 처리 유닛은 평가될 조건에 대한 만족에 따라 브랜치 타깃 명령 또는 브랜치 명령에 논리적으로 이어지는 명령의 실행을 지속하며, 판독 유닛은 파이프라인 유닛의 브랜치 명령을 검출하기 위하여 메모리로부터의 판독과 처리 유닛에 대한 공급 사이에서 파이프라인 유닛의 명령을 버퍼링하도록 배치되고, 또다른 메모리 뱅크가 브랜치 명령에 논리적으로 이어지는 하나 이상의 명령중 어떠한 명령도 기억하지 못하는 경우 브랜치 명령에 논리적으로 이어지는 하나 이상의 명령의 판독과 병행하여 또다른 메모리 뱅크로부터의 브랜치 타깃 명령과 브랜치 명령에 따라 판독을 개시하도록 배치되며, 브랜치 명령의 실행후 상기 조건의 만족에 따라 브랜치 타깃 명령과 그에 논리적으로 이어지는 명령 또는 브랜치 명령에 논리적으로 이어지는 명령 및 그에 논리적으로 이어지는 명령을 처리 유닛에 공급하도록 배치된다. 따라서, 브랜치 명령의 경우 또한 속도 저하가 방지된다. WO 93/14457 로부터, 실행된 메모리 뱅크의 파이프라인 판독이 아니며, 일련의 논리적으로 연속적인 명령으로부터 한 명령을 각각 기억하는 다른 메모리 뱅크로부터가 아니라 브랜치 타깃으로부터 프리페치하는 것이 공지되어있다. 파이프라인 유닛의 버퍼링 및 메모리 뱅크의 파이프라인 판독으로 인하여, 활성 메모리 뱅크의 수는 최소화되어, 브랜치 명령에 이어지는 명령과 브랜치 타깃 명령의 판독 사이의 메모리 뱅크 충돌 위험이 감소된다.
본 발명에 따른 처리 장치 실시예의 판독 유닛은 브랜치 타깃 명령 위치의 어드레싱과 병행하여 브랜치 타깃 명령에 논리적으로 이어지는 적어도 하나의 명령의 명령 위치를 어드레스하며, 조건이 만족되는 경우 내부 스테이지 또는 파이프라인의 각 내부 스테이지에 상기 적어도 하나의 명령을 적재하도록 배치된다.
본 발명에 따른 처리 장치의 또다른 실시예의 처리 유닛은 적어도 처리 유닛에 따라 판독되는 명령의 공급 및 메모리 뱅크의 어드레싱 사이에 요구되는 기간에 단지 N 개 명령의 연속적 실행을 개시할 수 있으며, 판독 유닛은 브랜치 타깃 명령의 어드레싱과 병행하여 브랜치 타깃 명령에 논리적으로 이어지는 N-1 명령의 명령 위치를 어드레스하고, 상기 조건이 만족되는 경우 N-1 명령을 병행하여 파이프라인 유닛에 적재하도록 배치된다. 따라서 파이프라인 유닛은 처리 유닛에서 실행되는 명령에 논리적으로 이어지는 명령으로 가능한 빠르게 다시 적재될 수 있으며, 연속적인 명령의 판독은 또한 가능한 빠르게 완료되어, 메모리 뱅크는 다른 명령을 판독하는데 다시 이용가능하게 된다. 판독 충돌을 방지하기 위하여, 메모리는 적절히 적어도 2*N 메모리 뱅크를 구비한다. 메모리 뱅크의 수가 많아짐에 따라, 브랜치 타깃 명령 또는 그에 논리적으로 이어지는 명령이 브랜치 명령에 논리적으로 이어지는 명령과 동일한 메모리 뱅크로부터 판독되어 진다.
본 발명에 따른 처리 장치 실시예의 판독 유닛은 상기 조건의 브랜치 명령의 검출후 처리 유닛이 상기 조건의 브랜치 명령을 실행하기까지 처리 유닛이 명령의 실행을 개시하는 매 시간 브랜치 타깃 명령에 논리적으로 이어지는 명령과 브랜치 명령에 논리적으로 이어지는 명령을 다른 메모리 뱅크로부터 병행하여 판독하는 것을 개시하도록 배치된다. 따라서, 브랜치 타깃 명령의 실행 개시후, 명령은 새로운 명령의 실행이 개시되는 매 시간 지연없이 바로 이용가능하게 되며, 활성 메모리 뱅크의 수는 최소화된다.
본 발명에 따른 처리 장치 실시예의 판독 유닛은 브랜치 타깃 명령 위치가 브랜치 명령에 논리적으로 이어지는 명령의 명령 위치와 동일한 메모리 뱅크에 위치되는 지를 검출하도록 배치되고, 일치하는 경우 브랜치 명령에 관련하는 추가 정보에 기초하여, 브랜치 타깃 명령 위치 및 브랜치 타깃 명령 위치에 논리적으로 이어지는 명령의 명령 위치 또는 브랜치 명령에 논리적으로 이어지는 명령의 명령 위치 및 그에 논리적으로 이어지는 명령의 명령 위치를 어드레스하도록 배치된다. 이러한 정보는 상기 조건이 얼마나 만족될 수 있는지를 나타낸다. 상기 정보는 실례로 프로그램의 컴파일링 동안 발생될 수 있거나, 명령 실행 동안 최근의 브랜치 통계치에 기초하여 발생될 수 있다. 상기 정보는 가장 확실히 실행될 명령이 일치되는 경우 어드레스될 수 있게 하는데 이용된다.
본 발명에 따른 처리 장치의 실시예는 브랜치 타깃 명령 및 브랜치 타깃 명령에 논리적으로 이어지는 M 명령이 브랜치 명령에 논리적으로 이어지는 명령과 상기 브랜치 명령에 논리적으로 이어지는 M 명령과는 다른 메모리 뱅크에 기억되는 프로그램으로 프로그램된다. 따라서 이들 명령은 가능한 빠르게 판독될 수 있게 되어, 메모리 뱅크는 다른 판독 동작에 대하여(실례로 브랜치 명령을 위해) 가능한 빠르게 다시 이용될 수 있게 된다. 파이프라인 유닛이 이용될 때, 명령은 병행하여 파이프라인에 직접 적재될 수 있다.
처리 장치는 반도체 기판상에서 메모리 뱅크와 함께 적절히 직접된다. 따라서 명령을 적재하기 위한 다수의 접속 라인이 메모리 뱅크와 처리 유닛 사이에 용이하게 이행될 수 있다.
본 발명은 또한 브랜치 명령을 포함하는 명령 메모리에 기억될 명령을 발생하도록 배치되며, 브랜치 타깃 명령 및 그에 논리적으로 이어지는 하나 이상의 명령이 브랜치 명령에 이어지는 명령의 동일한 수와는 다르게 메모리 뱅크에 기억되는 방식으로 명령 메모리에 명령 배치를 적합하도록 배치되는 컴파일러에 관한 것이다. 뱅크 충돌은 컴파일 동안 현저한 메모리내의 뱅크수에 대해 메모리 뱅크를 고려함으로써 방지될 수 있다. 본 발명에 따른 처리 장치에서 명령이 판독되는 때가 정확히 예측될 수 있다. 뱅크 사이의 충돌은 동시에 판독될 명령의 적절한 배치에 의해 피할 수 있게 된다. 이러한 배치는 실례로, "동작-없음" 명령, 또는 비조건 브랜치 명령후 적절한 수의 비사용 위치에 브랜치 타깃 명령의 저장, 또는 비사용 명령 위치의 브랜칭의 포함을 채움으로써 실행될 수 있다.
도 1은 본 발명에 따른 처리 장치의 실시예를 도시한다. 처리 장치는 처리 유닛(10), 다수의 메모리 뱅크(12a-d)를 갖는 메모리, 판독 유닛(14) 및 클럭(19을 포함한다. 판독 유닛(14)은 다수의 어드레스/선택 출력을 가지며, 이들 각각은 관련 어드레스/선택 접속(18a-d)을 통하여 각각의 메모리 뱅크(12a-d)에 접속된다. 메모리 뱅크(12a-d)는 명령 버스(16)를 통하여 처리 유닛(10)의 명령 입력에 접속된다. 클럭(19)은 판독 유닛(14), 메모리 뱅크(12a-d) 및 처리 유닛(10)에 연결된다.
도 2는 도 1에 도시된 처리 장치의 동작과 관련하는 타이밍도이다. 판독 유닛(14)은 연속하는 클럭 주기(또는, 명령 사이클 도는 판독 사이클)에서 연속하는 메모리 위치를 어드레스한다. 라벨 AD를 갖는 트레이스는 메모리 어드레스(I1,I2,...)가 선택된 클럭 주기를 나타낸다. 연속하는 메모리 어드레스(I1,I2,...)를 갖는 메모리 위치는 연속하는 메모리 뱅크(12a-d)에 위치된다. 따라서, 어드레싱 동안에 판독 유닛(14)은 항상 연속적인 메모리 뱅크(12a-d)를 선택한다. 메모리 어드레스(I1,I2,...)를 수신한 후, 선택된 메모리 뱅크(12a-d)는 메모리 어드레스(I1,I2,...)에 의해 지시된 메모리 위치의 내용을 판독하기 시작한다. 트레이스 B1, B2, B3, B4 는 각각의 메모리 뱅크(12a-d)에 의해 판독된 위치의 메모리 어드레스(I1,I2,...)를 나타낸다. 메모리 뱅크(12a-d)는 메모리 어드레스(I1,I2,...)의 수신후 이용하능하게 되도록 메모리 위치의 내용에 대해 한 클럭 주기 이상을 필요로 한다(실례로, 타이밍도에서 3개의 클럭 주기). 메모리 뱅크(12a-d)가 어드레스되었지만 그 결과로 메모리 뱅크(12a-d)가 아직 이용가능한 내용을 갖지 않는 클럭 주기에 이어지는 클럭 주기에서, 판독 클럭(14)은 이미 또다른 데이터 뱅크(12a-d)를 선택하여 상기 매모리 뱅크(12a-d)에 메모리 어드레스(I1,I2,...)를 공급한다. 판독 유닛(14)은 또한 실례로 라운드-로빈 방식으로 실행하며, 여기에서 메모리 뱅크(12a-d)는 매 4개의 연속하는 클럭 주기 마다 고정된 시퀀스로 어드레스된다. 따라서, 매 시간 다수의 메모리 뱅크(12a-d)는 병행하여 명령을 판독하는데 인게이지된다. 어드레스된 메모리 어드레스(I1,I2,...)의 내용은 메모리 뱅크(12a-d)의 어드레싱후 다수의 클럭 주기(실례로, 3개의 클럭 주기)를 이용가능하게 된다. 이에 응답하여 판독 유닛(14)은 관련 메모리 뱅크(12a-d)에 신호를 공급하여 이러한 내용이 명령 버스(16)를 통해 처리 유닛(10)에 공급되도록 한다. 이에 응답하여, 처리 유닛(10)은 명령 판독을 개시하기 시작한다. 트레이스 EX 는 실행될 명령의 메모리 어드레스(I1,I2,...)를 나타낸다. 처리 유닛(10)은 실례로 통상 각각의 클럭 주기 마다 명령을 실행하기 시작할 수 있는 RISC 처리 유닛이 된다. 하지만, 이전의 명령에 대한 실행은 "스톨"을 야기할 수 있어, 처리 유닛(10)은 주어진 클럭 주기에 명령의 실행을 개시할 수 있다. 그러한 경우에, 판독시 인게이지되는 메모리 뱅크의 수가 명령을 판독하는데 요구되는 명령 사이클의 수 보다 적게 되는한 어떠한 메모리 뱅크(12a-d)도 어드레스되지 않는다.
판독 유닛(14)은 연속적으로 선택된 메모리 뱅크(12a-d)가 또한 그 각각의 어드레스된 메모리 내용을 연속적으로 처리 유닛에 공급할 수 있게 한다. 메모리 뱅크(12a-d)의 수가 적어도 메모리 뱅크(12a-d)로부터 명령을 판독하는데 요구되는 기간에서 처리 유닛(10)에 의해 실행될 수 있게 되는 명령의 최소수와 같다면, 새로운 명령이 매 클럭 주기 마다 처리 유닛(10)에 공급될 수 있게 된다.
단지 소정의 조건이 만족되는 경우에만 명령은 실행될 수 있는 브랜치 명령을 포함할 수 있다. 이러한 브랜치 명령은 브랜치 타깃 어드레스를 규정한다. 이후에 브랜치 명령의 연속적인 실행후(즉, 상기 조건이 만족된 경우), 메모리(12a-d)의 브랜치 타깃 어드레스로부터의 명령은 처리 유닛(10)으로 공급되어야 한다. 브랜치가 실행되는 클럭 주기 직후 메모리 뱅크(12a-d)로부터 이용가능하게 되는 명령은 통상 브랜치 타깃 어드레스로부터의 명령이 되지 않게된다. 판독 유닛(14)은 이러한 점에서 정정하여야 한다.
이러한 목적을 위하여, 처리 유닛(10)은 브랜치 명령이 "연속적으로"실행된 때를 알려주며, 또한 브랜치 타깃 어드레스에 대하여 알려준다. 그때 판독 유닛(14)은 처리 유닛(10)으로의 이미 어드레스된 명령의 공급을 방지하며, 브랜치 타깃 어드레스가 놓이게 되는 메모리 뱅크(12a-d)를 선택한다. 판독 유닛(14)은 이어서 브랜치 명령 이전과 같이 브랜치 타깃 어드레스로부터 다시 연속적으로 메모리 뱅크를 선택한다. 브랜치 타깃 어드레스의 내용이 이용가능하게 되는 순간으로부터 명령은 또한 처리 유닛(10)에 다시 공급된다.
하지만, 이러한 접근은 프로세서가 다수의 클럭 주기 동안 명령을 수신하지 않는 결점을 갖는다.
도 3은 이러한 결점이 실질적으로 완화되는 실시예를 도시한다.
도 3은 본 발명에 따른 처리 장치의 다른 실시예를 도시한다. 이러한 처리 장치는 또한 처리 유닛(20), 다수의 메모리 뱅크(22a-h), 판독 유닛(24) 및 클럭(29)을 포함한다. 처리 유닛(20), 메모리 뱅크(22a-h) 및 판독 유닛(24) 사이의 접속은 도 3가 파이프라인 유닛(240)을 통하여 처리 유닛(20)에 연결되는 3개의 명령 버스(26a-c)를 도시하는 것을 제외하고는 도 1에 도시된 것과 같다.
처리 유닛(20)은 실례로 실례로 디코딩, 산술/논리 처리, 데이터 메모리 어드레싱, 기록의 연속하는 스테이지에서 각각의 명령을 실행하는 파이프라인된 RISC 처리 유닛이 된다. 연속하는 명령의 다양한 스테이지는 파이프라인된 RISC 처리 유닛에서 병령로 실행된다. 명령에 의해 지정되는 산술 및 논리 동작이 실행되는 동안, 다음의 명령이 이미 병행하여 디코드된다. 따라서, 명령의 실행이 개시될 때, 이전의 명령은 여전히 실행되는 처리에 있게 된다. 이러한 목적을 위하여, 처리 유닛(20)은 또한 적절하게 다양한 스테이지에 대한 명령의 기억을 위한 파이프라인 레지스터(도시되지 않음)를 포함한다. 이러한 파이프라인은 복합 파이프라인 유닛을 형성하도록 파이프라인 유닛(240)으로부터 다운스트림으로 접속될 수 있다.
각각의 메모리 뱅크는 각각의 스위칭 회로(25a-h)를 통하여 3개의 명령 버스(26a-c)에 접속된다. 파이프라인 유닛(240)은 두 레지스터(242, 244) 및 두 멀티플렉서(243, 245)를 포함한다. 제 1 명령 버스(26a)는 첫 번째 레지스터(242)의 입력에 접속된다. 첫 번째 레지스터(242)의 출력은 제 1 멀티플렉서(243)를 통하여 나중의 레지스터(244)에 접속된다. 나중의 레지스터(244)의 출력은 제 2 멀티플렉서(245)를 통하여 처리 유닛(20)에 접속된다. 제 2 명령 버스(26b)는 제 1 멀티플렉서(243)를 통하여 나중의 레지스터(244)에 접속된다. 제 3 명령 버스(26c)는 제 2 멀티플렉서(245)를 통하여 이전의 소자(20)에 접속된다. 이전의 장치는 또한 첫 번째 레지스터(242)의 출력에 접속된 검출기(248)를 포함한다. 검출기의 출력은 판독 유닛(24)에 접속된다. 파이프라인 유닛(240)의 레지스터(242, 244)의 수와 명령 버스(26a-c)의 수는 실례로 각각 2개와 3개로 가정된다. 일반적으로, 레지스터의 수와 1을 더한것과 명령 버스의 수는 메모리 뱅크(22a-h)로부터 명령을 판독하도록 판독 유닛(24)에 의해 요구된 클럭의 수와 같다.
도 4는 메모리 어드레스(I1,I2,..., T1,T2,...)를 갖는 다수의 트레이스를 도시하는 타이밍도에 기초하여 도 3의 처리 장치의 동작을 설명한다. 이러한 트레이스는 클럭 사이클로 표시된 시간 "n", 16개의 메모리 뱅크(트레이스 B1,B2,...,B16) 각각으로부터 판독된 메모리 어드레스(I1,I2,..., T1,T2,...), 레지스터(242,244)에 기억된 메모리 어드레스(I1,I2,..., T1,T,...), 처리 유닛(20)에서 실행된 명령의 메모리 어드레스(I1,I2,..., T1,T2,...)를 도시한다. 일반적으로(즉, 판독된 브랜치 명령이 없다면), 도 3의 처리 장치는, 명령이 메모리 뱅크(20a-h)로부터 첫 번째 레지스터(242)로 공급되고 처리 유닛(20)이 명령의 실행을 개시하는 각각의 연속하는 클럭 주기에서 파이프라인 유닛(240)에서 다음 레지스터로(실례로, 나중의 레지스터(244)로 직접) 전송되는 것을 제외하고는, 도 1에 도시된 것과 동일한 방법으로 동작한다. 나중의 레지스터(244)로부터 명령은 처리 유닛(20)에 공급되어 실행된다.
명령이 제 1 명령 버스(26a)를 통해 나중의 레지스터(244)에 도달할 때, 검출기(248)는 조건 브랜치 명령이 관련되는 지를 검출한다. 그러한 경우라면, 검출기(248)는 판독 유닛(24)에 알려, 브랜치 명령 어드레스를 판독 유닛(24)에 공급한다. 이러한 것은 실례로 메모리 어드레스(I3)로부터 판독된 명령에 대한 경우가 된다. 검출에 따라서, 판독 유닛(24)은 처리 유닛(20)이 다음 명령의 실행을 개시할 때 브랜치 명령의 상기 I3에 논리적으로 이어지는 명령의 어드레스(I4,I5,I6,...)에 의한 메모리 뱅크(22a-h)의 어드레싱과 브랜치 타깃 어드레스(T1)가 논리적으로 연속하는 어드레스(T2,T3,...)로부터 메모리 어드레스(T1,T2,...)로 메모리 뱅크의 어드레싱을 병행하여 시작한다(명령은, 브랜치를 제외하고 다른 명령에 이어 실행되면, 또다른 명령에 논리적으로 이어지는 것이다). 브랜치 명령 어드레스(T1) 및 논리적으로 연속하는 어드레스(T2,T3)의 어드레싱에 대하여, 판독 유닛(24)은 명령 버스(26a-c)가 있는 만큼의 연속하는 명령에 대한 메모리 뱅크를 어드레스함으로써 이러한 것이 메모리 뱅크(22a-h)가 한 번 이상 어드레스되는 충돌로 유도되지 않는한 개시된다. 이러한 어드레스 동작에 연속되는 하나 이상의 클럭 주기 동안, 판독 유닛(24)은 처리 유닛이 명령의 실행을 개시할 때는 언제든지 이미 어드레스된 명령의 메모리 어드레스(T1,T2,T3)에 이어지는 메모리 어드레스(T4,T5,...)와 브랜치 명령의 메모리 어드레스(I4)에 이어지는 메모리 어드레스(I8,I9,...)를 병행하여 메모리 뱅크(22a-h)에 공급한다.
일부 메모리 어드레스(I1,I2)로부터 명령의 실행을 연속하여 개시한후, 처리 유닛(20)은 (메모리 어드레스 I3)으로부터 브랜치 명령의 실행을 개시한다. 이러한 브랜치 명령은 다음 실례로 제 1 스테이지에서 먼저 디코드된다. 제 2 스테이지에서, 실례로 브랜치 명령의 조건이 시험된다. (메모리 어드레스 I3 으로부터)브랜치 명령의 완료시, 처리 유닛(20)은 (메모리 어드레스 I3 으로부터) 브랜치 명령이 성공적으로 실행되었는지의 여부에 대하여 판독 유닛(24)에 신호를 보낸다("성공적"이라는 것은 브랜치 타깃 명령이 브랜치 명령후 실행되어야 하는 조건을 의미하는 것이다). 이러한 신호전송은 실례로 브랜치 명령(I3)의 메모리 어드레스에 논리적으로 이어지는 메모리 어드레스(I4)로부터 명령의 실행이 개시된 명령 사이클의 끝에서 발생한다.
(메모리 어드레스 I3 으로부터) 브랜치 명령이 성공적으로 실행되었다면, 상기 신호에 응답하여, 판독 유닛(24)은 브랜치 명령의 상기 (I3)에 정상적으로 이어지는 명령의 메모리 어드레스(I10,I11, 도시되지 않음)의 어드레싱을 중지한다. 처리 유닛(20)은 실행이 (메모리 어드레스 I3 으로부터) 브랜치 명령후 개시된 (메모리 어드레스 I4 으로부터) 어떠한 명령의 실행도(실례로, 디코딩후 스테이지) 중지한다. 판독 유닛(24)은 또한 브랜치 타깃 어드레스(T1)과 브랜치 타깃 어드레스과 동시에 어드레스된 이어지는 어드레스(T2,T3)가 명령 버스(26a-c)를 통하여 이용가능하게 되는 방식으로 메모리 뱅크(22a-h)를 제어한다. 멀티플렉서(243,245)를 사용하여, 유닛(24)은 (메모리 어드레스 T1 으로부터) 브랜치 타깃 명령이 이어지는 메모리 어드레스(T3, T2)로부터의 명령에 대한 파이프라인 유닛(240)의 레지스터(242,244)로의 적재와 병행하여 처리 유닛(20)에 공급되게 한다. 이어지는 클럭 주기 동안, 이어지는 명령들은 통상과 같이 첫 번째 레지스터(242)로 적재된다. 이러한 방법은 또한 비조건 브랜치 명령의 경우에도 이용될 수 있으며, 판독 유닛이 비조건 브랜치 명령의 신호전송으로부터 브랜치 명령에 논리적으로 이어지는 명령의 판독을 중지할 수 있다.
(메모리 어드레스 I3 으로부터) 브랜치 명령이 성공적으로 실행되지 않았다면(도 4에 도시되지 않은 상황), 판독 유닛(24)은 브랜치 타깃 어드레스(T1)에 연속하는 명령의 메모리 어드레스(T7,T8)의 어드레싱을 중지한다. 연속하는 클럭 주기 동안, 브랜치 명령에 이어지는 명령은 첫 번째 레지스터(242)에 다시 적재되고, 브랜치 명령 어드레스로부터 판독된 명령 및 이어지는 명령은 무시된다.
처리 유닛(20)이 검출기(248)에 의해 신호전송되지 않은 브랜치 명령을 실행한다면(실례로, 관련 명령이 첫 번째 레지스터(242)를 바이패스하는 동안 파이프라인 유닛(240)으로 적재됨으로 인함), 판독 유닛(240)은 도 1 및 도 2 와 관련하여 기술된 바와 같이 브랜치 명령을 처리하여, 더 많은 시간이 손실된다. 동일하게 브랜치 명령에 적용되어, 그로부터 브랜치 타깃 어드레스는 앞서 알 수 없게 되는데, 이는 처리 유닛(20)에 의한 데이터에 기초하여 계산되어야하기 때문이다. 실제로 그러한 상황은 프로그램에서 좀처럼 발생하지 않는 것으로 밝혀졌다. 원한다면, 이러한 문제는 다수의 브랜치 검출기(도시되지 않음)를 포함하므로써 해소될 수 있으며, 이들 각각은 각 명령 버스(26b-c)의 입력에 접속된다. 이들 검출기는 미리 판독 유닛(24)에 첫 번째 레지스터(242)를 바이패스하는 동안 파이프라인 유닛에 적재된 브랜치 명령을 신호전송할 수 있다. 판독 유닛(24)은 그때 그러한 브랜치 명령을 이전에 기술된 바와 같이 처리할 수 있어, 보다 적은 시간 만이 손실되게 된다.
메모리 뱅크(22a-h)의 어드레싱 동안에 브랜치 명령에 논리적으로 이어지는 명령의 메모리 어드레스(I4,I5,I6,...)의 어드레싱과 다른 한편 브랜치 타깃 명령(T1)과 브랜치 타깃 명령에 논리적으로 이어지는 명령(T2,T3,...)의 어드레싱 사이에 충돌이 발생할 수 있다. 메모리 뱅크(22a-h)가 명령의 판독에 대해 어드레스되고 이러한 메모리 뱅크가 또한 또다른 명령에 대해 어드레스되어야 한거나 또는 또다른 명령을 판독하는데 인게이지된다면 충돌이 발생한다. 그러한 충돌은 메모리 어드레스(I3)에 논리적으로 선행하거나 이어지는 명령의 메모리 어드레스(I1,I2,I4,I5,...)사이에서는 발생할 수 없는데, 이는 직접적으로 논리적으로 연속적인 명령의 메모리 어드레스가 라운드-로빈 방식으로 다른 메모리 뱅크(22a-h)사이에 분배되기 때문이며, 메모리 뱅크(22a-h)가 이전 판독 명령에 논리적으로 이어지는 명령의 판독에 대해 다시 어드레스될 수 있는 만큼의 새로운 명령이 실행되기 전에 메모리 뱅크(22a-h)가 판독을 항상 종료할 정도의 메모리 뱅크 수가 되기 때문이다. 동일한 이유로, 브랜치 타깃 명령(T1)과 브랜치 타깃 명령에 논리적으로 이어지는 명령(T2,T3,...)의 판독 사이에 충돌은 발생하지 않는다.
하지만, 브랜치 타깃 명령의 메모리 어드레스(T1)는 메모리 뱅크(22a-h)에 기억될 수 있으며, 여기에서 브랜치 명령(I3)에 논리적으로 이어지는 명령의 메모리 어드레스(I4,I5,I6,...)를 기억하고, 브랜치 타깃 명령(T1)을 판독하는데 요구되는 가간을 중복하는 기간에 판독된다. 동일하게 브랜치 타깃 명령(T1)에 논리적으로 이어지는 명령(T2,T3,...)에 대해 유지될 수 있다. 판독 유닛(24)은 그러한 충돌을 검출하여 그로부터 발생하는 에러를 방지한다.
동일한 메모리 뱅크(22a-h)가 동시에(즉, 동일 클럭 주기내에) 두 명령의 판독에 대해 어드레스되어야 한다면, 판독 유닛(24)은 이들 두 명령중 한 명령을 선택하여, 단지 선택된 명령의 판독에 대해서만 메모리 뱅크(22a-h)를 어드레스한다. 판독 유닛(24)은 통상 이러한 선택을 임의로 할 수 있다. 판독 유닛(24)은 브랜치가 성공되었는지 알려지기까지 비선택된 명령과 논리적으로 연속되는 명령들의 판독을 지연한다. 브랜치 타깃 명령이 브랜치 명령이 신호전송되는 경우 또다른 명령을 판독하는데 여전히 인게이지되는 메모리 뱅크(22a-h)에 기억될 때, 판독 유닛(24)은 한편으로 브랜치 타깃 명령의 이러한 판독 및 어드레싱을 중단하는 것과 다른 한편으로 브랜치 타깃 명령을 어드레싱하는 것을 중단하는 것 사이에서 선택한다(명백하게, 이러한 것은 단지 메모리 뱅크(22a-h)가 판독 동작의 관련 부분 동안 중단될 수 있는 메모리를 구비하는 경우에만 이행되며, 실례로 DRAM 의 경우는 제외된다). 판독 유닛(24)은 브랜치가 성공적이었는지 알려지기까지 비선택된 명령과 이에 논리적으로 연속하는 명령의 판독을 지연한다.
브랜치의 결과로서 실제로 어드레스된 명령이 실행되어야 함을 나타낸다면, 처리 장치는 도 4와 관련하여 기술된 바와 같은 동작을 지속한다. 브랜치의 결과로서 비어드레스된 명령이 실행되어야 함을 나타낸다면, 판독 유닛(24)은 상기 명령과 이에 논리적으로 연속하는 명령을 이제까지도 어드레스한다. 그러한 경우에, 처리 유닛(20)은 어드레스된 명령이 메모리 뱅크(22a-h)로부터 판독되기까지 일부 클럭 기간동안 명령의 실행을 개시할 수 없다. 그때 판독된 명령은 처리 유닛(20)과 레지스터(242,244)에 공급되고, 이후 처리 유닛(20)은 동작을 지속할 수 있다. 처리 유닛(24)은 원칙적으로 이러한 명령의 어드레싱과 병행하여(병행은 동일한 클럭 주기를 의미함) 이러한 명령에 논리적으로 이어지는 다수의 어드레스를 어드레스할 수 있게 되어, 이들 논리적으로 연속하는 명령들은 파이프라인 유닛의 레지스터(242,244)로의 적재에 대해 가능한 빠르게 이용가능하게 되고, 처리 유닛(20)에 대한 대기 시간은 최소화되며, 관련 메모리 뱅크(22a-h) 또한 가능한 빠르게 또다른 어드레싱에 다시 이용가능하게 된다. 메모리 뱅크(22a-h)가 판독 동작의 일부 동안 중단되지 않을 수 있는 메모리(본 경우에는, 실례로 DRAM)를 구비하는 경우에는, 이들 논리적으로 연속하는 명령의 판독을 지연할 필요가 있을 수 있다.
명령이 판독되는지 충돌의 경우 명령이 판독되지 않는지를 결정하는데 있어서 판독 유닛(24)에 의해 이루어지는 선택은 다양한 방법으로 실행될 수 있다. 수용가능한 것은 브랜치 타겟에 대한 계회적 선택, 임의 선택, 또는 브랜치 명령에 논리적으로 이어지는 명령에 대한 계획적 선택등이 있다. 브랜치의 성공이 예측될 수 없는한, 판독되지 않은 명령이 실행되어야 한다면 시간의 손실은 명령의 실행에 있어 항상 발생할 수 있다. 이러한 시간의 손실을 최소화하기 위하여, 선택이 적절히 이루어지는 지를 나타내는 정보는 브랜치 명령과 함께 기억될 수 있다. 판독후, 판독 유닛(24)은 이러한 정보에 기초하여 선택할 수 있다. 이렇나 정보는 실례로 컴파일러에 의해 발생될 수 있거나, 브랜치가 성공적이었는지에 따라 명령의 실행동안 갱신될 수 있다.
더욱이, 컴파일링은 또한 충돌이 발생하지 않는 관련 브랜치 명령과 관련하는 그러한 어드레스에 브랜치 타깃 명령을 위치시킴으로써, 즉 메모리 뱅킹(22a-h)의 라운드-로빈 시퀀스의 브랜치 명령으로부터 충분히 멀리 위치시키므로써 메모리 충돌이 방지될 수 있게 한다.

Claims (11)

  1. 처리 유닛, 처리 유닛에 대한 명령을 기억하는 메모리, 및 논리 시퀀스로 메모리로부터 명령을 판독하여 논리 시퀀스로 실행될 수 있도록 상기 명령을 처리 유닛에 공급하는 판독 유닛을 포함하는 처리 장치에 있어서,
    상기 메모리는 논리적으로 연속적인 명령들이 다른 메모리 뱅크에 기억되는 다수의 독립적으로 어드레스가능한 메모리 뱅크를 구비하고, 판독 유닛이 병행하여 다른 메모리 뱅크로부터 다수의 명령들을 판독하여, 처리 유닛이 명령을 실행하기 시작하는 매 시간 그 순간에 메모리 뱅크로부터 병행하여 판독되는 명령에 논리적으로 이어지는 명령을 판독하기 시작함으로써 상기 다수의 명령을 재공급하도독 배치되는 것을 특징으로 하는 처리 장치.
  2. 제 1 항에 있어서, 처리 유닛은 적어도 메모리 뱅크의 어드레싱과 처리 유닛으로 판독된 명령의 적용 사이에 요구되는 기간에 N 개 명령의 연속적인 실행 만을 개시할 수 있으며, 판독 유닛은 다양한 메모리 뱅크로부터 병행하여 N 명령을 판독하도록 배치되는 것을 특징으로 하는 처리 장치.
  3. 제 1 항 또는 제 2 항에 있어서, 처리 유닛은 특히 브랜치 명령을 실행하도록 배치되고, 이후 처리 유닛은 평가될 조건에 대한 만족에 따라 브랜치 타깃 명령 또는 브랜치 명령에 논리적으로 이어지는 명령의 실행을 지속하며, 판독 유닛은 파이프라인 유닛의 브랜치 명령을 검출하기 위하여 메모리로부터의 판독과 처리 유닛에 대한 공급 사이에서 파이프라인 유닛의 명령을 버퍼링하도록 배치되고, 또다른 메모리 뱅크가 브랜치 명령에 논리적으로 이어지는 하나 이상의 명령중 어떠한 명령도 기억하지 못하는 경우 브랜치 명령에 논리적으로 이어지는 하나 이상의 명령의 판독과 병행하여 또다른 메모리 뱅크로부터의 브랜치 타깃 명령과 브랜치 명령에 따라 판독을 개시하도록 배치되며, 브랜치 명령의 실행후 상기 조건의 만족에 따라 브랜치 타깃 명령과 그에 논리적으로 이어지는 명령 또는 브랜치 명령에 논리적으로 이어지는 명령 및 그에 논리적으로 이어지는 명령을 처리 유닛에 공급하도록 배치되는 것을 특징으로 하는 처리 장치.
  4. 제 3 항에 있어서, 판독 유닛은 브랜치 타깃 명령 위치의 어드레싱과 병행하여 브랜치 타깃 명령에 논리적으로 이어지는 적어도 하나의 명령의 명령 위치를 어드레스하며, 조건이 만족되는 경우 내부 스테이지 또는 파이프라인의 각 내부 스테이지에 상기 적어도 하나의 명령을 적재하도록 배치되는 것을 특징으로 하는 처리 장치.
  5. 제 4 항에 있어서, 처리 유닛은 적어도 처리 유닛에 따라 판독되는 명령의 공급 및 메모리 뱅크의 어드레싱 사이에 요구되는 기간에 단지 N 개 명령의 연속적 실행을 개시할 수 있으며, 판독 유닛은 브랜치 타깃 명령의 어드레싱과 병행하여 브랜치 타깃 명령에 논리적으로 이어지는 N-1 명령의 명령 위치를 어드레스하고, 상기 조건이 만족되는 경우 N-1 명령을 병행하여 파이프라인 유닛에 적재하도록 배치되는 것을 특징으로 하는 처리 장치.
  6. 제 3 항 내지 제 5 항중 어느 한 항에 있어서, 판독 유닛은 상기 조건의 브랜치 명령의 검출후 처리 유닛이 상기 조건의 브랜치 명령을 실행하기까지 처리 유닛이 명령의 실행을 개시하는 매 시간 브랜치 타깃 명령에 논리적으로 이어지는 명령과 브랜치 명령에 논리적으로 이어지는 명령을 다른 메모리 뱅크로부터 병행하여 판독하는 것을 개시하도록 배치되는 것을 특징으로 하는 처리 장치.
  7. 제 3 항 내지 제 6 항중 어느 한 항에 있어서, 판독 유닛은 브랜치 타깃 명령 위치가 브랜치 명령에 논리적으로 이어지는 명령의 명령 위치와 동일한 메모리 뱅크에 위치되는 지를 검출하도록 배치되고, 일치하는 경우 브랜치 명령에 관련하는 추가 정보에 기초하여, 브랜치 타깃 명령 위치 및 브랜치 타깃 명령 위치에 논리적으로 이어지는 명령의 명령 위치 또는 브랜치 명령에 논리적으로 이어지는 명령의 명령 위치 및 그에 논리적으로 이어지는 명령의 명령 위치를 어드레스하도록 배치되는 것을 특징으로 하는 처리 장치.
  8. 제 3 항 내지 제 7 항중 어느 한 항에 있어서, 브랜치 타깃 명령 및 브랜치 타깃 명령에 논리적으로 이어지는 M 명령이 브랜치 명령에 논리적으로 이어지는 명령과 상기 브랜치 명령에 논리적으로 이어지는 M 명령과는 다른 메모리 뱅크에 기억되는 프로그램으로 프로그램되는 것을 특징으로 하는 처리 장치.
  9. 제 1 항 내지 제 8 항중 어느 한 항에 있어서, 판독 유닛은 판독될 명령이 없으며 처리 유닛이 명령의 실행을 개시할 수 있게 되는 경우, 실행될 제 1 명령과 실행될 제 1 명령에 논리적으로 이어지는 적어도 하나의 명령을 병행하여 판독하는 것을 개시하는 것을 특징으로 하는 처리 장치.
  10. 제 1 항 내지 제 9 항중 어느 한 항에 있어서, 반도체 기판상에 집적되는 것을 특징으로 하는 처리 장치.
  11. 제 1 항 내지 제 9 항중 어느 한 항에 청구되는 처리 장치용 컴파일러에 있어서, 브랜치 명령을 포함하는 명령 메모리에 기억될 명령을 발생하도록 배치되며, 브랜치 타깃 명령 및 그에 논리적으로 이어지는 하나 이상의 명령이 브랜치 명령에 이어지는 명령의 동일한 수와는 다르게 메모리 뱅크에 기억되는 방식으로 명령 메모리에 명령 배치를 적합하도록 배치되는 것을 특징으로 하는 컴파일러.
KR1019980705095A 1996-11-04 1997-10-02 처리 장치 및 메모리내의 명령 판독 KR19990076967A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP96203063 1996-11-04
EP96203063.1 1996-11-04

Publications (1)

Publication Number Publication Date
KR19990076967A true KR19990076967A (ko) 1999-10-25

Family

ID=8224542

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980705095A KR19990076967A (ko) 1996-11-04 1997-10-02 처리 장치 및 메모리내의 명령 판독

Country Status (6)

Country Link
US (2) US6360311B1 (ko)
EP (1) EP0877981B1 (ko)
JP (1) JP2000507016A (ko)
KR (1) KR19990076967A (ko)
DE (1) DE69727127T2 (ko)
WO (1) WO1998020415A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040008714A (ko) * 2002-07-19 2004-01-31 주식회사 하이닉스반도체 마이크로 제어 시스템에 있어서 메모리 정보를 읽는 장치

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002073330A (ja) * 2000-08-28 2002-03-12 Mitsubishi Electric Corp データ処理装置
US10127558B2 (en) * 2002-12-06 2018-11-13 Altisource S.À R.L. Expense tracking, electronic ordering, invoice presentment, and payment system and method
US8266028B2 (en) 2002-12-06 2012-09-11 Altisource Solutions S.à r.l. Expense tracking, electronic ordering, invoice presentment, and payment system and method
US7412418B2 (en) 2002-12-06 2008-08-12 Ocwen Financial Corporation Expense tracking, electronic ordering, invoice presentment, and payment system and method
US7254690B2 (en) * 2003-06-02 2007-08-07 S. Aqua Semiconductor Llc Pipelined semiconductor memories and systems
US7702883B2 (en) * 2005-05-05 2010-04-20 Intel Corporation Variable-width memory
EP2011018B1 (en) 2006-04-12 2016-07-13 Soft Machines, Inc. Apparatus and method for processing an instruction matrix specifying parallel and dependent operations
US8139071B1 (en) 2006-11-02 2012-03-20 Nvidia Corporation Buffering unit to support graphics processing operations
US7999817B1 (en) 2006-11-02 2011-08-16 Nvidia Corporation Buffering unit to support graphics processing operations
EP2122461A4 (en) 2006-11-14 2010-03-24 Soft Machines Inc DEVICE AND METHOD FOR PROCESSING COMMUNICATIONS IN A MULTITHREAD ARCHITECTURE WITH CONTEXT CHANGES
US8375449B1 (en) * 2007-08-10 2013-02-12 Fortinet, Inc. Circuits and methods for operating a virus co-processor
US8286246B2 (en) 2007-08-10 2012-10-09 Fortinet, Inc. Circuits and methods for efficient data transfer in a virus co-processing system
US8079084B1 (en) 2007-08-10 2011-12-13 Fortinet, Inc. Virus co-processor instructions and methods for using such
US9100319B2 (en) 2007-08-10 2015-08-04 Fortinet, Inc. Context-aware pattern matching accelerator
CN101394541A (zh) * 2007-09-21 2009-03-25 中兴通讯股份有限公司 用于交互式网络电视系统的文件内容的分发方法
EP2283578A1 (en) 2008-05-21 2011-02-16 Nxp B.V. A data handling system comprising memory banks and data rearrangement
CN102037514A (zh) * 2008-05-21 2011-04-27 Nxp股份有限公司 包括重排网络的数据处理系统
EP2616928B1 (en) 2010-09-17 2016-11-02 Soft Machines, Inc. Single cycle multi-branch prediction including shadow cache for early far branch prediction
CN103562866B (zh) 2011-03-25 2018-03-30 英特尔公司 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段
KR101638225B1 (ko) 2011-03-25 2016-07-08 소프트 머신즈, 인크. 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 명령어 시퀀스 코드 블록의 실행
EP2689326B1 (en) 2011-03-25 2022-11-16 Intel Corporation Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines
TWI666551B (zh) 2011-05-20 2019-07-21 美商英特爾股份有限公司 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行
WO2012162189A1 (en) 2011-05-20 2012-11-29 Soft Machines, Inc. An interconnect structure to support the execution of instruction sequences by a plurality of engines
KR101703401B1 (ko) 2011-11-22 2017-02-06 소프트 머신즈, 인크. 다중 엔진 마이크로프로세서용 가속 코드 최적화기
WO2013077876A1 (en) 2011-11-22 2013-05-30 Soft Machines, Inc. A microprocessor accelerated code optimizer
US9229722B2 (en) 2012-01-31 2016-01-05 International Business Machines Corporation Major branch instructions with transactional memory
US9280398B2 (en) 2012-01-31 2016-03-08 International Business Machines Corporation Major branch instructions
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US10140138B2 (en) * 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
CN105247484B (zh) 2013-03-15 2021-02-23 英特尔公司 利用本地分布式标志体系架构来仿真访客集中式标志体系架构的方法
CN105210040B (zh) 2013-03-15 2019-04-02 英特尔公司 用于执行分组成块的多线程指令的方法
US9436476B2 (en) 2013-03-15 2016-09-06 Soft Machines Inc. Method and apparatus for sorting elements in hardware structures
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
US20140281116A1 (en) 2013-03-15 2014-09-18 Soft Machines, Inc. Method and Apparatus to Speed up the Load Access and Data Return Speed Path Using Early Lower Address Bits
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US9627038B2 (en) 2013-03-15 2017-04-18 Intel Corporation Multiport memory cell having improved density area
US9582322B2 (en) 2013-03-15 2017-02-28 Soft Machines Inc. Method and apparatus to avoid deadlock during instruction scheduling using dynamic port remapping
CN104424128B (zh) * 2013-08-19 2019-12-13 上海芯豪微电子有限公司 变长指令字处理器系统和方法
US9946538B2 (en) 2014-05-12 2018-04-17 Intel Corporation Method and apparatus for providing hardware support for self-modifying code
US10019743B1 (en) 2014-09-19 2018-07-10 Altisource S.á r.l. Methods and systems for auto expanding vendor selection
US11550577B2 (en) * 2019-05-15 2023-01-10 Western Digital Technologies, Inc. Memory circuit for halting a program counter while fetching an instruction sequence from memory
CN113434198B (zh) * 2021-06-25 2023-07-14 深圳市中科蓝讯科技股份有限公司 Risc-v指令处理方法、存储介质及电子设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4727474A (en) * 1983-02-18 1988-02-23 Loral Corporation Staging memory for massively parallel processor
US4636942A (en) * 1983-04-25 1987-01-13 Cray Research, Inc. Computer vector multiprocessing control
CA1250667A (en) * 1985-04-15 1989-02-28 Larry D. Larsen Branch control in a three phase pipelined signal processor
JPS63131230A (ja) * 1986-11-21 1988-06-03 Hitachi Ltd 情報処理装置
US5179680A (en) * 1987-04-20 1993-01-12 Digital Equipment Corporation Instruction storage and cache miss recovery in a high speed multiprocessing parallel processing apparatus
US5127091A (en) * 1989-01-13 1992-06-30 International Business Machines Corporation System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor
EP0407911B1 (en) * 1989-07-07 1998-12-09 Hitachi, Ltd. Parallel processing apparatus and parallel processing method
US5261068A (en) * 1990-05-25 1993-11-09 Dell Usa L.P. Dual path memory retrieval system for an interleaved dynamic RAM memory unit
US5287467A (en) * 1991-04-18 1994-02-15 International Business Machines Corporation Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit
EP0544083A3 (en) * 1991-11-26 1994-09-14 Ibm Interleaved risc-type parallel processor and processing methods
US5878245A (en) * 1993-10-29 1999-03-02 Advanced Micro Devices, Inc. High performance load/store functional unit and data cache
US5619663A (en) * 1994-09-16 1997-04-08 Philips Electronics North America Corp. Computer instruction prefetch system
US5784548A (en) * 1996-03-08 1998-07-21 Mylex Corporation Modular mirrored cache memory battery backup system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040008714A (ko) * 2002-07-19 2004-01-31 주식회사 하이닉스반도체 마이크로 제어 시스템에 있어서 메모리 정보를 읽는 장치

Also Published As

Publication number Publication date
DE69727127D1 (de) 2004-02-12
DE69727127T2 (de) 2004-11-25
EP0877981B1 (en) 2004-01-07
JP2000507016A (ja) 2000-06-06
US20020038415A1 (en) 2002-03-28
EP0877981A1 (en) 1998-11-18
US7124282B2 (en) 2006-10-17
WO1998020415A1 (en) 1998-05-14
US6360311B1 (en) 2002-03-19

Similar Documents

Publication Publication Date Title
KR19990076967A (ko) 처리 장치 및 메모리내의 명령 판독
EP0689131B1 (en) A computer system for executing branch instructions
EP0238810B1 (en) Method and system for facilitating instruction processing of a digital computer
US5706459A (en) Processor having a variable number of stages in a pipeline
KR19980079506A (ko) 멀티스레드 프로세서에서 스레드 스위치 대기 시간을 감소시키기 위한 방법 및 장치
JP2006522398A (ja) パイプライン型命令プロセッサにおけるバイパスの使用
US4685058A (en) Two-stage pipelined execution unit and control stores
JP2000066894A (ja) パイプライン化浮動小数点ストア
EP0331191A2 (en) Information processing system capable of carrying out advanced execution
US5765007A (en) Microinstruction sequencer having multiple control stores for loading different rank registers in parallel
US4430708A (en) Digital computer for executing instructions in three time-multiplexed portions
KR100431975B1 (ko) 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템
EP0753810A1 (en) Computer instruction execution
JPS6049340B2 (ja) 分岐命令先取り方式
JP3708022B2 (ja) プロセッサ
EP0292188A2 (en) Cache system
US20050015561A1 (en) Memory control method and memory control apparatus
US5649226A (en) Processor having multiple instruction registers
JP3461887B2 (ja) 可変長パイプライン制御装置
JP2003525493A (ja) マルチコマンド命令語を有するデータプロセッサ
JPS60241136A (ja) デ−タ処理装置
JP2853460B2 (ja) データロード方法及びそれを用いた演算プロセッサ
JP4151497B2 (ja) パイプライン処理装置
US6983360B2 (en) Program loading mechanism through a single input data path
JP2853458B2 (ja) 命令列切り替え方法及びそれを用いた演算プロセッサ

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application