KR20020081038A - 정보 처리 장치 및 컴퓨터 시스템 - Google Patents

정보 처리 장치 및 컴퓨터 시스템 Download PDF

Info

Publication number
KR20020081038A
KR20020081038A KR1020010074492A KR20010074492A KR20020081038A KR 20020081038 A KR20020081038 A KR 20020081038A KR 1020010074492 A KR1020010074492 A KR 1020010074492A KR 20010074492 A KR20010074492 A KR 20010074492A KR 20020081038 A KR20020081038 A KR 20020081038A
Authority
KR
South Korea
Prior art keywords
instruction
instructions
command
buffer
column
Prior art date
Application number
KR1020010074492A
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 KR20020081038A publication Critical patent/KR20020081038A/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/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
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions

Landscapes

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

Abstract

본 발명은 VLIW 명령 등의 명령을 효율적으로 독출하여 연산기에 분배할 수 있는 정보 처리 장치 및 컴퓨터 시스템을 제공한다.
본 발명에 따르면, m행 n열의 명령 버퍼(21, 31)와, 복수개의 명령을 병렬적으로 실행하는 명령 실행부(25∼27, 35∼37)와, 상기 m행 n열의 명령 버퍼로부터 소정의 개수의 명령을 선택하여 상기 명령 실행부에 분배하는 제어 회로(22∼24)를 갖는 정보 처리 장치를 제공한다.

Description

정보 처리 장치 및 컴퓨터 시스템{INFORMATION PROCESSING DEVICE AND COMPUTER SYSTEM}
본 발명은 정보 처리 장치에 관한 것으로, 특히 복수개의 기본 명령을 병렬적으로 실행하는 병렬 처리 프로세서에 관한 것이다. 보다 상세하게는, 본 발명은 아주 긴 명령어(Very Long Instruction Word: VLIW)를 실행할 수 있는 병렬 처리 프로세서에 관한 것이다.
최근 컴퓨터 시스템의 고속화의 요구에 따라, 프로세서 단위에 있어서 1 클록 사이클 중에 병렬로 실행 가능한 명령의 개수를 증가시키는 것이 요구되고 있다. 이 때문에, 아주 긴 명령어, 즉, VLIW 명령을 이용한 방식이 제안되어 있다. 그러나, 이 방식에서는, 프로그램에 따라서는 실제 메모리(real memory) 중에 아무 일도 하지 않는, 즉, 명령의 해석이나 실행이 필요하지 않은 명령 nop(no operation)이 많이 배치될 가능성이 있다. nop 명령이 많이 배치되면, 명령 캐쉬나 메인 메모리(main memory) 등에 불필요한 공간이 증대되어 성능 저하를 일으킬 가능성이 있다. 그래서 VLIW 형식에 있어서, 병렬로 실행 가능한 명령을 nop 명령의 부가없이 실제 메모리에 저장하고, 이것을 병렬로 실행 가능한 명령 그룹으로전개하여 공급하는 장치가 요망되고 있다.
우선, 도 1 및 도 2를 참조하여 VLIW 명령을 이용한 컴퓨터 시스템에 대해서 설명한다.
도 1은 종래의 병렬 처리 프로세서의 구성을 나타낸 도면이다. 도 1에 도시된 바와 같이, 종래의 병렬 처리 프로세서(10)는 메모리(7)에 접속된 명령 독출부(1)와, 명령 독출부(1)에 접속된 명령 발행부(3)와, 각각이 명령 발행부(3)에 접속된 명령 실행부(EU0∼EUn)와, 모든 명령 실행부(EU0∼EUn)에 접속된 레지스터부(5)를 구비한다. 여기서, 명령 독출부(1)는 메모리(7)로부터 명령어를 독출하여, 그 명령어를 명령 발행부(3)로 공급한다.
또한, 명령 발행부(3)는 공급된 명령어에 포함되는 기본 명령을 명령 실행부(EU0∼EUn)로 발행한다. 또, 이 때 명령 실행부(EU0∼EUn)가 이미 선행하는 기본 명령을 실행 중인 경우에는, 그 실행의 완료를 기다린 후에 대응하는 명령 실행부로 그 다음의 기본 명령을 공급한다. 그리고, 명령 실행부(EU0∼EUn)는 공급받은 기본 명령을 실행하는 동시에, 그 실행이 완료된 경우에는 그 취지를 명령 발행부(3)로 통지한다.
또한, 레지스터부(5)는 필요에 따라 명령 실행부(EU0∼EUn)로 데이터를 공급하고, 또한 각 명령 실행부(EU0∼EUn)에 있어서의 실행 결과를 보유한다. 또, 외부 접속된 메모리(7)는 병렬 처리 프로세서(10)에서 실행하게 될 명령어 시퀀스를 기억하는 동시에, 명령 실행부(EU0∼EUn)가 명령의 실행시에 필요로 하는 데이터 및 그 실행의 결과 얻어진 데이터를 기억한다.
도 2는 4개의 명령 실행부(EU0∼EU3)를 구비한 상기 병렬 처리 프로세서에 공급되는 명령어의 형식을 나타낸 도면이다. 도 2에 도시된 바와 같이, 명령어는 기본 명령(EI)과, 무조작 명령(nop)으로 이루어진다. 여기에서, 하나의 명령어에 포함되어 병렬적으로 실행되는 기본 명령의 수가 명령 실행부(EU0∼EU3)의 수에 미치지 못하는 경우에는, 무조작 명령의 비율이 많아지는 것을 알 수 있다.
즉, 종래의 VLIW에 의한 복수개의 기본 명령의 병렬 처리 방식은 명령어가 고정 길이이었기 때문에, 병렬로 실행하는 기본 명령의 수가 소정의 수에 미치지 못하는 경우에는, 무조작 명령을 부가하여 소정의 길이로 할 필요가 있었다. 따라서, 명령 병렬도가 낮은 프로그램에 대해서는 무조작 명령이 많아지는 동시에 명령 코드량이 증대하기 때문에, 메모리의 사용 효율의 악화, 캐쉬 메모리의 히트율의 저하나 명령 독출 메카니즘의 부하의 증대 등을 초래한다고 하는 문제가 있었다.
이 문제에 착안하여 nop 명령인지의 여부를 지시하는 정보를 명령 중에 설치하고, nop 명령인 경우에는 연산기의 동작을 금지하는 방법(예컨대, 일본 특허 공개 공보 평성 제8-161169호)이나, VLIW 명령 형식을 가변 길이로 하여 nop 부분을 삭제하고, 실행 가능한 명령만으로 이루어진 VLIW 명령을 전개하여 연산기에 할당하는 방법이 제안되어 있다(예컨대, 본 출원인이 이전에 제안했던 일본 특허 출원 평성 제11-281957호).
그러나, 이들 종래 기술에서는, VLIW 명령을 효율적으로 독출하고, 효율적으로 연산기에 할당하여 연산을 실행하는 점에서 개선의 여지가 있다.
구체적으로는, 도 1에 도시된 종래 기술의 명령 발행부(3)는 독출부(1)로부터 공급된 n개의 명령을 보유할 수 있다. 즉, 명령 발행부(3)는 1행 n열 구성이다. 이러한 구성의 명령 발행부는 상기 일본 특허 공개 공보 평성 제8-161169호나 일본 특허 출원 평성 제11-281957호에 기재되어 있는 구성에서도 이용되고 있다. 명령 발행부(3)가 1행 n열 구성이기 때문에, VLIW 명령을 빈번히 메모리(7)로부터 독출해야만 하여 효율적이지 못하다. 또한, VLIW 명령이 가변 길이이기 때문에, 반드시 명령 발행부(3)에 모든 VLIW 명령이 저장된다는 보증은 없다. 즉, VLIW 명령의 일부만이 명령 발행부(3)에 전송되고, 나머지는 여전히 메모리(7)에 있는 것과 같은 경우를 생각할 수 있다. 이러한 경우에는, VLIW 명령의 나머지 부분을 메모리(7)로부터 독출하여 명령 발행부(3)로 전송할 때까지, VLIW 명령을 실행할 수 없다.
따라서, 본 발명은 상기 종래 기술의 문제점을 해결하고, VLIW 명령 등의 명령을 효율적으로 독출하여 연산기에 분배할 수 있는 정보 처리 장치 및 컴퓨터 시스템을 제공하는 것을 목적으로 한다.
도 1은 종래의 병렬 처리 프로세서의 구성을 나타낸 블록도.
도 2는 4개의 명령 실행부를 구비한 도 1에 도시된 병렬 처리 프로세서에 공급되는 명령어의 형식을 나타낸 도면.
도 3은 본 발명의 제1 실시 형태를 나타낸 블록도.
도 4는 본 발명에서 이용되는 명령을 설명하기 위한 도면.
도 5는 도 3의 구성을 보다 상세하게 나타낸 블록도.
도 6은 본 발명의 제1 실시 형태의 변형예를 나타낸 블록도.
도 7은 본 발명의 제2 실시 형태를 나타낸 블록도.
도 8은 본 발명의 일 실시예에 따른 병렬 처리 프로세서 및 이것을 이용한 컴퓨터 시스템의 구성을 나타낸 블록도.
도 9는 도 8에 도시된 컨트롤러의 동작을 나타낸 플로우챠트.
도 10은 도 8에 도시된 병렬 처리 프로세서의 동작예를 설명하는데 이용되는 명령의 배열을 나타낸 도면.
〈도면의 주요 부분에 대한 부호의 설명〉
21, 31 : 제1 명령 버퍼
22, 32 : 제1 선택 회로
23, 33 : 제2 명령 버퍼
24, 34 : 제2 선택 회로
25, 26, 27 : 연산기 그룹
본 발명은 m행 n열의 명령 버퍼와, 복수개의 명령을 병렬적으로 실행하는 명령 실행부와, 상기 m행 n열의 명령 버퍼로부터 소정의 개수의 명령을 선택하여 상기 명령 실행부에 분배하는 제어 회로를 갖는 정보 처리 장치이다. m행 n열의 명령 버퍼를 이용하고, 이 m행 n열의 명령 버퍼로부터 소정의 개수의 명령을 선택하여 상기 명령 실행부에 분배하기 때문에, VLIW 명령 등의 명령을 효율적으로 독출하여 연산기에 분배할 수 있다.
(제1 실시 형태)
도 3은 본 발명의 정보 처리 장치의 제1 실시 형태에 따른 병렬 처리 프로세서의 설명 블록도이다. 도 3에 도시한 병렬 처리 프로세서는 제1 명령 버퍼(21), 제1 선택 회로(22), 제2 명령 버퍼(23), 제2 선택 회로(24) 및 2개의 연산기를 갖는 연산기 그룹(25, 26 및 27)을 갖는다.
제1 명령 버퍼(21)는 m행 n열 구성이다(m과 n은 각각 임의의 정수). 도 3의 예에서는, 3행 6열 구성이다. 제1 명령 버퍼(21)는 도 4를 참조하여 후술하는 메모리(28)로부터 독출된 가변 길이의 VLIW 명령을 n개씩 1그룹으로 하여 수취하고, 이것을 m행 n열 구성으로 전개한다. 또, n열로 이루어진 1행을 1블록이라 정의한다. 또한, 하나의 명령을 보유하는 부분(명령 부분과 후술하는 제1 및 제2 정보를 보유하는 부분)을 단위 버퍼라 칭한다. 따라서, 제1 명령 버퍼(21)는 18개(= 3 x 6)의 단위 버퍼를 구비한다.
여기서, 본 실시 형태에서 이용되는 명령에 대해서, 도 4를 참조하여 설명한다. 도 4에 있어서, 참조 번호 28은 본 실시 형태에서 이용하는 메모리로서, 그 내부에 기억된 복수개의 명령이 도시되어 있다. 또한, 참조 번호 7은 도 1에서 이용되고 있는 메모리이다. 본 실시 형태에서 이용하는 가변 길이의 명령에서는, 동시 실행 가능 여부를 나타내는 정보인 플래그(29)가 각 명령에 부가되어 있다. 플래그(29)는 "0" 이나 "1" 중 어느 하나의 값을 취한다. 예컨대, 명령 1(instruction 1)에는 "0"의 플래그(29)가 부가되고, 명령 4에는 "1"의 플래그(29)가 부가되어 있다. 값 "0"은 동시 실행 가능한 명령이라는 것을 나타내고, 값 "1"은 그 직후의 명령과 동시에 실행할 수 없는 명령이라는 것을 나타내고 있다. 도 4의 예에서는, 명령 1에서 명령 4까지는 동시 실행 가능한 명령이다. 명령 4의 플래그(29)는 "1"이기 때문에, 명령 5와는 동시 실행할 수 없다. 명령 5의 플래그(29)는 "1"이기 때문에, 명령 6과는 동시 실행할 수 없다.
이러한 명령 그룹을 저장하는 메모리(28)를 종래의 방법으로 nop를 이용하여 2차원으로 전개하면, 도 4의 참조 번호 28A로 나타낸 바와 같이 된다. 명령 4개로 1행을 구성하고 있고, 각 행이 하나의 VLIW 명령을 형성하고 있다. 명령의 저장은 좌측 아래에서부터 우측 방향으로 4개 저장하고, 다음은 위의 행에 좌측에서부터 순서대로 4개가 저장된다. 도 4에 도시된 명령 어드레스는 1명령마다 값이 4씩 증분된다. 각 VLIW 명령의 최후 명령에 부가되어 있는 플래그(29)의 값은 전부 "1"이 된다. 즉, 플래그(29)는 VLIW 명령의 경계를 나타내는 정보이다[이것을 패킹 플래그(packing flag)라고 함].
도 3에 도시된 제1 명령 버퍼(21)에는 도 4의 메모리(28)로부터 명령이 독출되어 1블록마다, 즉, 6개의 명령마다 순차 좌측 아래에서부터 순서대로 기록된다.
도 3에 도시된 0이나 1은 상기 패킹 플래그를 뜻하고 있다. 도 3에는 도 4에 도시한 명령 1 등의 개개의 명령을 나타내는 표시는 생략하고 있다.
또한, 도 3에는 A, B, C의 기호가 각 단위 버퍼상에 표시되어 있다. 이것은 각 명령에 부여된 제2 정보이다(제1 정보는 패킹 플래그). 제2 정보는 명령의 종류를 나타낸다. 또한, 제2 정보는 처리되어야 할 연산기 그룹(25∼27) 중의 하나를 나타내고 있다고도 말할 수 있다. 연산기(25, 26 및 27)는 각각 연산 A, B 및 C를 실행한다. 예컨대, 연산 A, B 및 C는 각각 정수 연산, 부동 소수점 연산 및 분기 명령 연산이다.
도 3의 예에서는, 제1 명령 버퍼의 가장 아래쪽 행의 좌측에서부터 순서대로 명령이 기록된다. 최초의 2개의 단위 버퍼는 비어있으며(empty), 명령은 기록되어 있지 않다. 그 다음에서부터 4개는 순서대로 플래그 "0"의 명령으로서, 명령의 종류가 B, A, B, C인 명령이 기록되어 있다. 아래에서 2번째(중앙) 행에는 좌측에서부터 순서대로 플래그가 "0", "1", "0", "1", "0", "0"으로서 명령의 종류가 A, C, B, C, A, C인 명령이 기록되어 있다. 가장 위의 행에는 좌측에서부터 순서대로 플래그가 "1", "0", "0", "1", "0", "1"로서 명령의 종류가 C, B, A, C, A, B인 명령이 기록되어 있다.
상술한 바와 같이, 패킹 플래그가 VLIW 명령의 경계를 나타내고 있다. 따라서, 도 3의 예에서는, 최초의 VLIW 명령은 명령의 종류가 B, A, B, C, A, C인 6개의 명령으로 구성되고, 2번째의 VLIW 명령은 명령의 종류가 B, C인 2개의 명령으로 구성되며, 3번째의 VLIW 명령은 A, C, C인 3개의 명령으로 구성되어 있다(4번째 이후의 VLIW 명령의 설명은 생략). 여기서, 1번째의 VLIW 명령은 2개의 블록(가장 아래쪽 행에서 중앙행에 걸쳐서)에 걸쳐 있고, 3번째의 VLIW 명령도 2개의 블록(중앙행에서 가장 위쪽 행에 걸쳐서)에 걸쳐 있다. 본 실시 형태에 따르면, 이와 같이 복수 행(블록)에 걸쳐 있는 VLIW 명령을 한번에 모아서 제1 명령 버퍼로부터 독출하여 처리할 수 있다. 종래 기술에서는 1행 6열 구성이기 때문에, 상기 VLIW 명령을 처리하기 위해서는 반드시 1행 중에서 VLIW 명령이 완성되어 있어야만 한다는 제약이 있어 효율적인 처리를 행할 수 없다.
제1 선택 회로(22)는 3입력 1출력의 선택기를 6개 구비하고 있다. 도 5는 도 3에 도시된 구성을 보다 상세하게 도시한 것이다. 제1 선택 회로(22)는 6개의 3입력 1출력의 선택기(selector, 221∼226)를 구비하고 있다. 각 선택기(221∼226)는 대응하는 열의 3개의 단위 버퍼로부터 독출된 3개의 명령을 수취하고, 그 중의 하나를 선택한다. 예컨대, 선택기(221∼226)는 각각 *가 붙어 있는 단위 버퍼로부터 독출한 명령을 선택한다. 선택은 패킹 플래그의 값을 참조하여 행해진다. 선택 제어에 대해서는 후술한다.
선택된 명령은 제2 명령 버퍼(23)에 보유된다. 제2 명령 버퍼(23)는 1행 n열(본 실시 형태에서는 6열) 구성이다. 즉, 도 5에 도시된 바와 같이, 제2 명령 버퍼(23)는 6개의 단위 버퍼(231∼236)를 갖는다. 도 5에는 *가 붙어 있는 단위 버퍼로부터 독출되고, 선택된 명령이 저장되어 있는 상태를 나타내고 있다. 각 단위 버퍼(231∼236)의 출력은 제2 선택 회로(24)에 공급되어 있다.
도 5에 도시된 바와 같이, 제2 선택 회로(24)는 6개의 6입력 1출력 선택기(selector, 241∼246)를 구비한다. 각 선택기(241∼246)의 6개의 입력은 6개의 단위 버퍼(231∼236)의 출력에 접속되어 있다. 선택기(241와 242)의 출력은 연산기 그룹(25)에 접속되어 있다. 선택기(243과 244)의 출력은 연산기 그룹(26)에 접속되어 있다. 선택기(245와 246)의 출력은 연산기 그룹(27)에 접속되어 있다.
제2 선택 회로(24)의 선택은 명령의 종류 A, B, C를 참조하여 행해진다. 예컨대, 종류 A의 연산기 그룹(25)에 접속되어 있는 선택기(241과 242)는 종류 A의 명령을 보유하고 있는 단위 버퍼(233와 234)를 선택한다. 마찬가지로, 종류 B의 연산기 그룹(26)에 접속되어 있는 선택기(243과 244)는 종류 B의 명령을 보유하고 있는 단위 버퍼(235와 236)를 선택한다.
각 연산기 그룹(25, 26 및 27)은 각각 2개의 파이프라인 슬롯(연산기)을 갖는다. 연산기 그룹(25)은 파이프라인 슬롯(A1과 A2)을 가지며, 연산기 그룹(26)은 파이프라인 슬롯(B1과 B2)을 가지며, 연산기 그룹(27)은 파이프라인 슬롯(C1과 C2)을 갖는다.
이상과 같이, 복수개의 블록(행)에 걸친 VLIW 명령이라도 동시에 연산기 그룹(25∼27)에 공급할 수 있기 때문에, 효율적으로 명령을 메모리로부터 독출하여 연산을 실행할 수 있다.
이상, 제1 실시 형태를 정리하면, m행 n열의 명령 버퍼(21)와, 복수개의 명령을 병렬적으로 실행하는 명령 실행부(25∼27)와, 상기 m행 n열의 명령 버퍼로부터 소정의 개수의 명령을 선택하여 상기 명령 실행부에 분배하는 제어 회로{제1 선택 회로(22), 제2 명령 버퍼(23) 및 제2 선택 회로(24)로 구성되는 회로}를 갖는 병렬 처리 프로세서가 제공된다.
(제1 실시 형태의 변형예)
도 6은 상기 본 발명의 제1 실시 형태의 변형예이다. 이 변형예는 도 5에 도시된 제2 선택 회로(24) 대신에 도 6에 도시된 제2 선택 회로(124)를 이용한 것을 특징으로 한다. 제2 선택 회로(124)는 6개의 3입력 1출력 선택기(selector, 1241∼1246)를 구비한다. 각 선택기(1241∼1246)는 미리 정해진 제2 명령 버퍼(23)의 3개의 단위 버퍼에 접속되어 있다. 예컨대, 선택기(1241, 1243및 1245)는 단위 버퍼(231, 233, 235)의 출력에 접속되어 있다. 또한, 선택기(1242,1244및 1246)는 단위 버퍼(232, 234, 236)의 출력에 접속되어 있다.
도 6에 도시된 구성은 미리 정해진 동시 실행 가능한 명령의 시퀀스 중 어느 하나에 일치하는 VLIW 명령만이 제1 명령 버퍼(21)로부터 제1 선택 회로(22)를 통하여 제2 명령 버퍼(23)로 출력되는 경우에 적합한 것이다. 동시 실행 가능한 명령의 시퀀스란, 예컨대, 같은 종류의 명령이 2개 있을 때에는 연속되어 있어야만 하는 것이다.
더욱이, 선택기(1241과 1242)는 각각 연산기 그룹(25)의 파이프라인 슬롯(A1과 A2)에, 선택기(1243과 1244)는 각각 연산기 그룹(26)의 파이프라인 슬롯(B1과 B2)에, 선택기(1245와 1246)는 각각 연산기 그룹(27)의 파이프라인 슬롯(C1과 C2)에 직결되어 있는 구성에서는, 홀수번째의 단위 버퍼(231, 233, 235)는 홀수번째의 파이프라인 슬롯(A1, B1, C1)에서 처리되고, 짝수번째의 단위 버퍼(232, 234, 236)는 짝수번째의 파이프라인 슬롯(A2, B2, C2)에서 처리된다. 즉, 제2 명령 버퍼(23)에 저장되는 VLIW 명령은 이러한 조건(규칙이라고도 말할 수 있음)을 만족하는 것이어야만 한다.
도 6에 도시된 구성에서는, 미리 정해진 동시 실행 가능한 명령의 시퀀스가 되도록, 메모리(28)에 명령을 배치한다. 예컨대, 이러한 명령의 배치는 VLIW 명령 중에 종류 A, B, C의 명령은 2개까지밖에 존재할 수 없고, 또한 2개 존재하는 경우에는 같은 종류의 명령은 연속되어 있어야만 한다는 제약에 따른다. 이 대신에, 제1 명령 버퍼(21)에 저장한 명령을 독출할 때에, 명령의 종류를 나타내는 정보를 후술하는 컨트롤러가 참조하여, 미리 정해진 동시 실행 가능한 명령의 시퀀스인지의 여부를 판단하는 것으로 하여도 좋다. 미리 정해진 동시 실행 가능한 명령의 시퀀스라고 판단된 경우에만, 제2 명령 버퍼(23)로 명령이 선택·전송된다.
(제2 실시 형태)
도 7은 본 발명의 정보 처리 장치의 제2 실시 형태에 따른 병렬 처리 프로세서의 블록도이다. 본 실시 형태는 미리 정해진 동시 실행 가능한 명령의 시퀀스의 제한 이외에 미리 정해진 동시 실행 가능한 명령의 수의 제한이 있는 경우의 VLIW 명령을 처리하는 것을 특징으로 한다.
본 실시 형태는 3행 4열 구성의 명령 버퍼(31)와, 제1 선택 회로(32)와, 1행 4열 구성의 제2 명령 버퍼(33)와, 제2 선택 회로(34)와, 3개의 연산기그룹(25∼27)을 구비한다. 제1 선택 회로(32)는 4개의 3입력 1출력 선택기를 갖는다. 각 선택기는 대응하는 열의 3개의 단위 버퍼로부터 독출된 명령을 선택하여 제2 명령 버퍼(33)가 대응하는 단위 버퍼로 출력한다. 이 선택 동작은 각 명령에 부가된 패킹 플래그를 참조하여 행해진다.
제2 명령 버퍼(33)는 4개의 단위 버퍼를 구비한다. 즉, 제2 실시 형태는 최대 4명령으로 이루어진 가변 길이의 VLIW 명령, 즉, 최대 가변 길이가 4인 VLIW 명령을 취급할 수 있다. 요컨대, 제2 실시 형태는 4를 초과하는 VLIW 명령을 취급하는 것은 불가능한 것으로, 동시 실행 가능한 명령의 수에 4라는 상한이 설정되어 있는 경우의 구성이다.
제2 실시 형태에서는, 미리 정해진 동시 실행 가능한 명령의 수가 4를 넘지 않도록 메모리(28)에 명령을 배치한다. 이 대신에, 제1 명령 버퍼(31)에 저장한 명령을 독출할 때에, 지금 처리하고자 하는 VLIW 명령을 구성하는 명령의 수를 후술하는 컨트롤러가 참조하여 미리 정해진 동시 실행 가능한 명령의 수의 조건을 만족하고 있는지의 여부를 판단하는 것으로 하여도 좋다. 미리 정해진 동시 실행 가능한 명령의 수라고 판단된 경우만, 제2 명령 버퍼(33)로 명령이 선택·전송된다.
제2 선택 회로(34)는 4개의 4입력 1출력 선택기를 구비하고 있다. 각 선택기의 입력은 제2 명령 버퍼(33)의 4개의 단위 버퍼에 접속되고, 출력은 미리 정해진 하나의 연산기 그룹에 접속되어 있다. 즉, 제2 명령 버퍼(33)에 저장되는 것은 미리 정해진 동시 실행 가능한 명령의 시퀀스를 갖는 VLIW 명령뿐이다. 도 7의 구성에서는, 명령 길이가 4인 경우, AABC, AABC, ABCC 등 전부 처리 가능하기 때문에, 전술한 제1 실시 형태의 변형예(도 6)의 경우와 마찬가지로 미리 정해진 동시 실행 가능한 명령의 시퀀스가 되도록 메모리(28)에 명령을 배치하는 구성이어도 좋고, 이 대신에, 제1 명령 버퍼(31)에 저장한 명령을 독출할 때에, 명령의 종류를 나타내는 정보를 후술하는 컨트롤러가 참조하여 미리 정해진 동시 실행 가능한 명령의 시퀀스인지의 여부를 판단하는 것으로 하여도 좋다.
(실시예)
도 8은 본 발명의 일 실시예에 따른 병렬 처리 프로세서 및 이것을 갖는 컴퓨터 시스템의 구성을 도시한 블록도이다.
컴퓨터 시스템은 메모리(50), 명령 캐쉬 메모리(51), 데이터 캐쉬 메모리(52) 및 이하에 기술하는 병렬 처리 프로세서를 구비한다. 병렬 처리 프로세서는 명령 버퍼(41), 명령 버퍼(42), 선택 회로(43), 연산기(43∼49), 컨트롤러(53), 포인터(54∼56) 및 프로그램 컨트롤러(57)를 구비한다.
명령 버퍼(41)는 전술한 제1 명령 버퍼(21 또는 31)와, 제1 선택 회로(22 또는 32)를 일체 구성으로 한 것이다. 명령 버퍼(41)는 4개의 행 #0∼#3과 4개의 열 #0∼#3으로 이루어진 4행 4열 구성이다. 명령 버퍼(41)는 4행 4열로 배열된 16개(=4×4)의 단위 버퍼(241)를 구비한다. 각 단위 버퍼(241)는 명령(INST.)을 저장하는 부분과, 패킹 플래그(P)를 저장하는 부분과, 연산의 종류를 특정하는 플래그(F, B)를 저장하는 부분으로 이루어진다. 명령이 부동 소수점 연산인 경우에는 F=1, B=0이다. 명령이 분기 명령인 경우에는 F=0, B=1이다. 명령이 정수 연산인 경우에는 F=0, B=0이다. 이 플래그(F, B)의 조합으로 식별되는 3개의 연산은전술한 명령의 종류 A, B, C에 대응한다.
명령 버퍼(41)는 선택기(SEL, 141)를 구비한다. 선택기(141)는 명령 캐쉬 메모리(51)로부터 독출된 4개의 명령을 컨트롤러(53)에서 지시된 행(블록)에 기록한다.
명령 버퍼(41)는 4개의 4입력 1출력 선택기(SEL, 3411∼3414)를 갖는다. 이들 선택기(3411∼3414)는 전술한 제1 선택 회로(22, 32)에 해당한다. 선택기(3411)는 열 #0에 위치하는 단위 버퍼(241)의 출력을 입력으로 한다. 마찬가지로, 선택기(3412∼3414)는 각각 열 #1∼#3에 위치하는 단위 버퍼(241)의 출력을 입력한다. 이들 선택기(3411∼3414)는 컨트롤러(53)로 제어된다.
명령 버퍼(42)는 전술한 제2 명령 버퍼(23, 33)에 대응하는 것으로, 4개의 단위 버퍼(1421∼1424)를 갖는다. 단위 버퍼(1421∼1421)는 각각 선택기(3411∼3414)의 출력을 수취한다.
선택 회로(43)는 전술한 제2 선택 회로(24, 34)에 대응하는 것으로, 6개의 4입력 1출력 구성의 선택기(SEL, 1431∼1436)를 갖는다. 각 선택기(1431∼1436)의 입력은 4개의 단위 버퍼(1421∼1424)의 출력을 수취한다. 각 선택기(1431∼1436)는 컨트롤러(53)의 지시에 따라 4개의 입력으로부터 하나를 선택한다. 선택기(1431∼1436)의 출력은 각각 연산기(44∼49)에 공급된다.
연산기(44와 46)는 정수 연산기이다. 연산기(45와 47)는 부동 소수점 연산기이다. 연산기(48과 49)는 분기 명령 연산기이다. 연산기(44∼47)는 데이터 캐쉬 메모리(52)와 데이터를 교환한다. 연산기(48, 49)의 연산 결과는 컨트롤러(53)에 공급된다.
컨트롤러(53)는 도 9에 도시된 플로우챠트에 따라 명령 캐쉬 메모리(51), 명령 버퍼(41), 명령 버퍼(42) 및 선택 회로(43)를 제어한다. 이 제어는 포인터(54∼56) 및 프로그램 카운터(57)를 이용하여 행해진다. 포인터(TOPPTR: 54)는 명령 버퍼(41)상의 어느 행에 선두 어드레스가 있는지를 나타내는 것이다. 즉, 포인터(54)는 행 #0∼#3 중 어느 하나를 가리키고 있다. 포인터(REAPTR: 55)는 포인터(54)가 나타내는 행에 있는 4개의 명령 중 어느 것이 선두 명령인지를 나타내는 것이다. 즉, 포인터(55)는 선두 어드레스를 행 번호와 열 번호로 특정한다. 포인터(WRITEPTR: 56)는 명령 버퍼(41)상에서 명령을 다음에 저장해야 할 행을 나타내는 것이다. 즉, 포인터(56)는 행 번호 #0∼#3 중 어느 하나를 가리키고 있다. 포인터(56)가 가리키고 있는 행이라도 명령 버퍼(41)가 명령으로 가득 찬 경우에는, 명령을 저장할 수 없다. 프로그램 카운터(PC: 57)는 행에 명령을 저장할 때에 명령 캐쉬 메모리(51)상에서의 어드레스를 저장하는 것이다. 즉, 행 #0∼#3에 각각 프로그램 카운터 PC#0∼PC#3이 존재하고, 명령을 저장했을 때에 명령 캐쉬 메모리(51)상의 어드레스를 저장한다. 또, 도 8에 도시된 구성에서는, 명령은 명령 버퍼의 좌측 위(행 #0, 열 #0)에서부터 순서대로 기록된다.
다음에, 도 9를 참조하여 도 8의 컴퓨터 시스템의 동작을 설명한다. 도 9는 컨트롤러(53)의 제어 동작을 나타내는 플로우챠트이다.
우선, 컨트롤러(53)는 포인터(54, 55 및 56)를 초기화하여 포인터값을 0으로 설정하는 동시에, 명령 버퍼(41)의 각 단위 버퍼(241)의 내용을 클리어한다(단계 S11). 다음에, 컨트롤러(53)는 명령 캐쉬 메모리(51)로부터 명령을 1행분 수신하고(페치, fetch), 포인터(56)를 1만큼 증분시키는 동시에, 프로그램 카운터(57)를 세트(set)한다(단계 S12). 그리고, 컨트롤러(53)는 취소 요구(CANCEL)를 발생해야할지의 여부를 판단한다(단계 S13). 취소 요구는 분기 예측 오류, 예외 등으로 페치한 명령이 무효가 된 경우에, 명령 버퍼(41)에 저장되어 있는 모든 명령을 클리어한다. 단계 S13의 판단 결과가 '예'인 경우에는, 컨트롤러(53)는 단계 S11로 되돌아간다. 단계 S13의 판단 결과가 '아니오'인 경우에는, 컨트롤러(53)는 단계 S14로 진행한다.
컨트롤러(53)는 VLIW 명령을 명령 버퍼(42)에 공급(릴리스, release) 가능한지의 여부를 판단한다(단계 S14). 즉, 컨트롤러(53)는 1 VLIW 명령을 구성하는 명령이 명령 버퍼(141)에 저장되었는지의 여부를 판단한다. 이 판단은 패킹 플래그(P)를 참조하여 행해진다. 단계 S14의 판단 결과가 '아니오'인 경우에는, 컨트롤러(53)는 단계 S12를 실행한다. 단계 S12에서 4 명령을 판독하여 다음 행에 집어넣고, 포인터(56)가 1만큼 증분된다. 단계 S14의 판단 결과가 '예'인 경우에는, 컨트롤러(53)는 단계 S15를 실행한다.
컨트롤러(53)는 패킹 플래그(P)를 경계로 하는 VLIW 명령을 명령 버퍼(42)에 릴리스한다(단계 S15). 동시에, 컨트롤러(53)는 필요에 따라 포인터(54)를 1 증분하여 포인터(55)를 갱신한다. 그리고, 컨트롤러(53)는 단계 S16으로 진행한다.
컨트롤러(53)는 명령 버퍼(41)가 채워져있는지(full)의 여부를 판단한다(단계 S16). 채워져 있지 않다고 판단한 경우에는, 컨트롤러(53)는 단계 S12로 되돌아간다. 채워져 있다고 판단한 경우에는, 컨트롤러(53)는 명령 캐쉬 메모리(51)로부터 명령의 수신을 중지하고(단계 S17), 단계 S14로 되돌아간다.
상기 플로우챠트에 따른 동작의 일례를 도시한다. 이 경우, 도 10에 도시된 바와 같이 명령이 명령 버퍼(41)에 저장되는 경우를 예를 들어 설명한다.
명령 버퍼(41)의 모든 단위 버퍼(241)가 리셋(reset)되고, 포인터(54, 56)는 행 #0으로 리셋되어 있다(단계 S11). 포인터(55)도 0으로 리셋되어 있다. 이 상태로 명령 캐쉬 메모리(51)로부터 독출된 1행분의 4 명령(INST1∼INST4)이 라인 #0의 단위 버퍼(241)에 페치된다(단계 S12). 이 때, 포인터(56)는 1 증분되고, 행 #1을 나타내게 된다. 판단 결과가 '아니오'인 경우 단계 S13을 통과하고, 단계 S14에서 행 #0의 패킹 플래그가 체크된다. 행 #0, 열 #2의 위치에 있는 명령(INST3)의 패킹 플래그가 "1"이기 때문에, 단계 S14의 판단 결과는 '예'가 된다.
단계 S15에서 포인터(54)와 포인터(55)의 값은 0이며, 열 #2의 위치의 패킹 플래그가 "0"이기 때문에, INST1∼INST3이 명령 버퍼(42)의 단위 버퍼(1421, 1422, 1423)에 저장된다. 그리고, 포인터(55)가 열 #3을 가리키도록 갱신된다. 포인터(54)는 증분되지 않는다. 그리고 단계 S16을 지나 단계 S12로 진행한다.
또, 컨트롤러(53)는 단위 버퍼(1421, 1422, 1423)에 저장된 플래그(F와 B)의값을 참조하여 선택 회로(43)를 제어한다. 이 경우, 명령(INST1)은 F=B=0이기 때문에, 단위 버퍼(1421)로부터 선택기(1431)를 지나 연산기(44)로 보내진다. 명령(INST2)도 F=B=0이기 때문에, 단위 버퍼(1422)로부터 선택기(1433)를 지나 연산기(46)로 보내진다. 명령(INST3)은 F=1, B=0이기 때문에, 단위 버퍼(1423)로부터 선택기(1432)를 지나 연산기(45)로 보내진다.
단계 S12에서 다음 4명령(INST5∼INST8)이 독출되어 포인터(56)가 지시하는 행 #1의 4 단위 버퍼(241)에 저장된다. 그리고, 포인터(56)는 1 증분되고, 행 #2를 가리키게 된다. 단계 S13의 판단 결과 '아니오'를 지나 단계 S14로 진행한다. 단계 S14의 판단 결과는 '예'이기 때문에, 단계 S15로 진행한다.
포인터(54)는 행 #0을 가리키고 있고, 포인터(55)는 열 #3을 가리키고 있다. 또한, "1"의 패킹 플래그는 행 #1, 열 #2에 있다. 따라서, 명령(INST4∼INST7)이 독출되고, 명령 버퍼(42)의 단위 버퍼(1424, 1421, 2422, 1423)에 기록된다. 그리고, 포인터(54)는 1 증분되고, 행 #1을 가리키게 된다. 다음 독출의 선두는 열 #3이기 때문에, 포인터(55)의 값은 3인 채 변하지 않는다. 그리고, 단계 S16을 지나 단계 S12로 되돌아간다.
단위 버퍼(1421)에 저장된 INST5는 F=B=0이기 때문에, 선택 회로(43)의 선택기(1431)를 지나 연산기(44)로 출력된다. 단위 버퍼(1422)에 저장된 INST6도 F=B=0이기 때문에, 선택 회로(43)의 선택기(1433)를 지나 연산기(46)로 출력된다. 단위버퍼(1423)에 저장된 INST7은 F=1, B=0이기 때문에, 선택 회로(43)의 선택기(1432)를 지나 연산기(45)로 출력된다. 단위 버퍼(1424)에 저장된 INST4는 F=1, B=0이기 때문에, 선택 회로(43)의 선택기(1434)를 지나 연산기(47)로 출력된다.
이와 같이, VLIW 명령이 복수개의 행(블록)에 걸치는 경우라도 효율적으로 명령을 실행할 수 있다.
또, 컨트롤러(53)에, 허용되는 명령의 시퀀스나 명령의 개수의 상한을 설치하고 있고, 명령 버퍼(41)에 저장된 VLIW 명령이 이들 조건을 만족하는지의 여부를 판단하는 기능을 설치하는 것으로 하여도 좋다. 이 경우에는, 컨트롤러(53)는 소정의 조건을 만족하는 VLIW 명령만 명령 버퍼(42)로 전송한다.
이상, 본 발명의 실시 형태 및 실시예를 설명하였다. 본 발명은 이들에 한정되지 않고, 각종 실시 형태나 실시예를 포함하는 것이다.
이상 설명한 바와 같이, 본 발명에 따르면, VLIW 명령 등의 명령을 효율적으로 독출하여 연산기에 분배할 수 있는 정보 처리 장치 및 컴퓨터 시스템을 제공할 수 있다.

Claims (10)

  1. m행 n열의 명령 버퍼와,
    복수개의 명령을 병렬적으로 실행하는 명령 실행부와,
    상기 m행 n열의 명령 버퍼로부터 소정의 개수의 명령을 선택하여 상기 명령 실행부에 분배하는 제어 회로
    를 갖는 정보 처리 장치.
  2. 제1항에 있어서, 상기 제어 회로는 n개의 선택 회로를 가지며, 각 선택 회로는 대응하는 열에 있는 m개의 명령으로부터 하나를 선택하는 것을 특징으로 하는 정보 처리 장치.
  3. 제1항에 있어서, 상기 제어 회로는 n개의 선택 회로와 그 선택 회로를 제어하는 제어부를 가지며,
    상기 제어부는 각 명령에 포함되는 동시 실행 가능 여부를 나타내는 정보를 참조하여 상기 선택 회로를 제어하고, 각 열마다 대응하는 열에 있는 m개의 명령으로부터 하나를 선택하는 것을 특징으로 하는 정보 처리 장치.
  4. 제1항에 있어서, 상기 제어 회로는 n개의 제1 선택 회로와, 그 제1 선택 회로로 선택된 소정의 개수의 명령을 보유하는 1행 n열의 버퍼와, 그 1행 n열의 버퍼에 보유된 명령을 상기 명령 실행부에 분배하는 제2 선택 회로를 갖는 것을 특징으로 하는 정보 처리 장치.
  5. 제4항에 있어서, 상기 제1 선택 회로는 각 명령에 포함되는 동시 실행 가능 여부를 나타내는 제1 정보에 기초하여 선택 동작을 행하고, 상기 제2 제어 회로는 각 명령에 포함되는 명령의 종류를 나타내는 제2 정보에 기초하여 선택 동작을 행하는 것을 특징으로 하는 정보 처리 장치.
  6. 제1항에 있어서, 상기 제어 회로는 소정의 조건을 만족하는 명령만 선택하는 것을 특징으로 하는 정보 처리 장치.
  7. 제6항에 있어서, 상기 소정의 조건은 명령 길이 또는 명령의 조합에 관한 조건을 포함하는 것을 특징으로 하는 정보 처리 장치.
  8. 제1항에 있어서, 상기 명령 실행부는 복수개의 슬롯을 가지며,
    상기 제어 회로는 n개의 제1 선택 회로와, 그 제1 선택 회로로 선택된 소정의 개수의 명령을 보유하는 1행 n열의 버퍼를 가지며,
    각 슬롯은 n개의 명령을 보유하는 상기 1행 n열 버퍼 부분의 수보다 크거나 같은 수만큼 설치되어 있는 것을 특징으로 하는 정보 처리 장치.
  9. 제1항에 있어서, 상기 m행 n열의 명령 버퍼는 메모리로부터 독출된 NOP 명령을 포함하지 않는 명령 그룹을 수취하는 것을 특징으로 하는 정보 처리 장치.
  10. 명령을 저장하는 메모리와, 그 메모리로부터 독출된 명령을 병렬 처리하는 프로세서를 구비하고,
    상기 프로세서는,
    m행 n열의 명령 버퍼와,
    복수개의 명령을 병렬적으로 실행하는 명령 실행부와,
    상기 m행 n열의 명령 버퍼로부터 소정의 개수의 명령을 선택하여 상기 명령 실행부에 분배하는 제어 회로
    를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
KR1020010074492A 2001-04-18 2001-11-28 정보 처리 장치 및 컴퓨터 시스템 KR20020081038A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001120175A JP2002318687A (ja) 2001-04-18 2001-04-18 情報処理装置及び計算機システム
JPJP-P-2001-00120175 2001-04-18

Publications (1)

Publication Number Publication Date
KR20020081038A true KR20020081038A (ko) 2002-10-26

Family

ID=18970265

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010074492A KR20020081038A (ko) 2001-04-18 2001-11-28 정보 처리 장치 및 컴퓨터 시스템

Country Status (4)

Country Link
US (1) US20020156992A1 (ko)
EP (1) EP1251425A3 (ko)
JP (1) JP2002318687A (ko)
KR (1) KR20020081038A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101291597B1 (ko) * 2011-10-20 2013-08-01 버추얼모션(주) 접촉 요소를 갖는 다물체 동역학 시스템의 효율적인 해석방법
WO2015137722A1 (ko) * 2014-03-12 2015-09-17 삼성전자 주식회사 Vliw 명령어를 처리하는 방법 및 장치와 vliw 명령어를 처리하기 위한 명령어를 생성하는 방법 및 장치

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2382160A (en) * 2001-08-09 2003-05-21 Internet Extra Ltd System for encrypting multimedia files for transmission or storage as a set of data blocks in which the re-assembly order has been encrypted
KR101996266B1 (ko) 2014-09-18 2019-10-01 삼성전자주식회사 호스트 및 이를 포함하는 컴퓨터 시스템
US11928470B1 (en) * 2022-04-20 2024-03-12 Verisilicon Holdings Co., Ltd. Advancing a program counter to a start of a subsequent cache line based on a straddling group indicator in a current cache line

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2107046A1 (en) * 1993-01-08 1994-07-09 James Allan Kahle Method and system for increased instruction dispatch efficiency in superscalar processor system
US5604909A (en) * 1993-12-15 1997-02-18 Silicon Graphics Computer Systems, Inc. Apparatus for processing instructions in a computing system
US6202143B1 (en) * 1997-08-21 2001-03-13 Samsung Electronics Co., Ltd. System for fetching unit instructions and multi instructions from memories of different bit widths and converting unit instructions to multi instructions by adding NOP instructions
US5974537A (en) * 1997-12-29 1999-10-26 Philips Electronics North America Corporation Guard bits in a VLIW instruction control routing of operations to functional units allowing two issue slots to specify the same functional unit
US6065110A (en) * 1998-02-09 2000-05-16 International Business Machines Corporation Method and apparatus for loading an instruction buffer of a processor capable of out-of-order instruction issue
JP3451921B2 (ja) * 1998-03-30 2003-09-29 松下電器産業株式会社 プロセッサ
US6324639B1 (en) * 1998-03-30 2001-11-27 Matsushita Electric Industrial Co., Ltd. Instruction converting apparatus using parallel execution code
US6292845B1 (en) * 1998-08-26 2001-09-18 Infineon Technologies North America Corp. Processing unit having independent execution units for parallel execution of instructions of different category with instructions having specific bits indicating instruction size and category respectively
DE69935066D1 (de) * 1999-05-03 2007-03-22 St Microelectronics Sa Befehlsvorausholeinheit
JP3730455B2 (ja) * 1999-10-01 2006-01-05 富士通株式会社 情報処理装置及び情報処理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101291597B1 (ko) * 2011-10-20 2013-08-01 버추얼모션(주) 접촉 요소를 갖는 다물체 동역학 시스템의 효율적인 해석방법
WO2015137722A1 (ko) * 2014-03-12 2015-09-17 삼성전자 주식회사 Vliw 명령어를 처리하는 방법 및 장치와 vliw 명령어를 처리하기 위한 명령어를 생성하는 방법 및 장치
US10599439B2 (en) 2014-03-12 2020-03-24 Samsung Electronics Co., Ltd. Method and device for allocating a VLIW instruction based on slot information stored in a database by a calculation allocation instruction

Also Published As

Publication number Publication date
JP2002318687A (ja) 2002-10-31
US20020156992A1 (en) 2002-10-24
EP1251425A3 (en) 2003-01-02
EP1251425A2 (en) 2002-10-23

Similar Documents

Publication Publication Date Title
US5513366A (en) Method and system for dynamically reconfiguring a register file in a vector processor
US6691221B2 (en) Loading previously dispatched slots in multiple instruction dispatch buffer before dispatching remaining slots for parallel execution
US5918033A (en) Method and apparatus for dynamic location and control of processor resources to increase resolution of data dependency stalls
EP1023659B1 (en) Efficient processing of clustered branch instructions
JP4292198B2 (ja) 実行スレッドをグループ化するための方法
US8458443B2 (en) VLIW processor with execution units executing instructions from instruction queues and accessing data queues to read and write operands
US5625834A (en) Information processing section and system for operating a plurality of vector pipeline sets in two different modes
US20020083253A1 (en) Digital signal processing apparatus
WO1994016385A1 (en) System and method for assigning tags to instructions to control instruction execution
US7015718B2 (en) Register file apparatus and method for computing flush masks in a multi-threaded processing system
US20180329832A1 (en) Information processing apparatus, memory control circuitry, and control method of information processing apparatus
JP3523286B2 (ja) 順次データ転送型メモリ及び順次データ転送型メモリを用いたコンピュータシステム
WO2007035126A1 (fr) Procede d'organisation d'ordinateurs multiprocesseurs
EP0982655A2 (en) Data processing unit and method for executing instructions of variable lengths
JP7348969B2 (ja) 共有機能部を有するマイクロプロセッサ
KR20110084915A (ko) 데이터 처리 장치
KR100765567B1 (ko) 산술 논리 유닛 및 스택을 가지는 데이터 프로세서, 멀티미디어 장치 및 컴퓨터 판독가능 기록 매체
KR20020081038A (ko) 정보 처리 장치 및 컴퓨터 시스템
EP0496407A2 (en) Parallel pipelined instruction processing system for very long instruction word
US5918034A (en) Method for decoupling pipeline stages
US6119220A (en) Method of and apparatus for supplying multiple instruction strings whose addresses are discontinued by branch instructions
EP0987624B1 (en) Method and system for buffering instructions in a processor
US6349370B1 (en) Multiple bus shared memory parallel processor and processing method
US20040128476A1 (en) Scheme to simplify instruction buffer logic supporting multiple strands
CN117971349B (zh) 计算设备、为计算设备配置虚拟寄存器的方法、控制设备、计算机可读存储介质和计算机程序产品

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid