KR20050057199A - 데이터 처리장치에서의 파이프라인들간의 동기화 - Google Patents
데이터 처리장치에서의 파이프라인들간의 동기화 Download PDFInfo
- Publication number
- KR20050057199A KR20050057199A KR1020057003803A KR20057003803A KR20050057199A KR 20050057199 A KR20050057199 A KR 20050057199A KR 1020057003803 A KR1020057003803 A KR 1020057003803A KR 20057003803 A KR20057003803 A KR 20057003803A KR 20050057199 A KR20050057199 A KR 20050057199A
- Authority
- KR
- South Korea
- Prior art keywords
- pipeline
- queue
- coprocessor
- instruction
- stage
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 49
- 238000000034 method Methods 0.000 claims abstract description 90
- 238000012546 transfer Methods 0.000 claims abstract description 19
- 230000008569 process Effects 0.000 claims abstract description 16
- 230000001360 synchronised effect Effects 0.000 claims abstract description 13
- 230000008878 coupling Effects 0.000 claims abstract description 9
- 238000010168 coupling process Methods 0.000 claims abstract description 9
- 238000005859 coupling reaction Methods 0.000 claims abstract description 9
- 239000000872 buffer Substances 0.000 claims description 56
- 239000013598 vector Substances 0.000 claims description 24
- 238000011010 flushing procedure Methods 0.000 claims description 10
- 230000001419 dependent effect Effects 0.000 claims description 7
- 238000013461 design Methods 0.000 claims description 5
- 238000013459 approach Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 14
- 238000011084 recovery Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 208000036864 Attention deficit/hyperactivity disease Diseases 0.000 description 1
- 241000221035 Santalaceae Species 0.000 description 1
- 235000008632 Santalum album Nutrition 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008033 biological extinction Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 235000021185 dessert Nutrition 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 208000035231 inattentive type attention deficit hyperactivity disease Diseases 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
- G06F9/3881—Arrangements for communication of instructions and data
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)
- Multi Processors (AREA)
Abstract
Description
Claims (45)
- 명령어들로 이루어진 시퀀스를 실행가능하도록 동작하고, 제 1 복수의 파이프라인단을 갖는 제 1 파이프라인을 구비한 메인 프로세서와,상기 명령어들로 이루어진 시퀀스에서 제 1 파이프라인과 제 2 파이프라인 양쪽을 통해 라우팅되도록 각기 구성된 코프로세서 명령어들을 실행가능하도록 동작하고, 제 2 복수의 파이프라인단을 갖는 제 2 파이프라인을 구비한 코프로세서와,코프로세서 명령어를 처리할 때 동기화 큐 내에 토큰이 설치될 수 있게 동작하는 상기 파이프라인들 중 일 파이프라인에서의 소정 파이프라인단과, 동기화 큐로부터 상기 토큰의 수신시에 그 코프로세서 명령어를 처리가능하도록 동작하는 상기 파이프라인들 중 다른 파이프라인에서의 상대방 파이프라인단을 결합하여서, 상기 소정 파이프라인단과 상기 상대방 파이프라인단 사이에서 제 1 및 제 2 파이프라인을 동기화하는 적어도 한 개의 동기화 큐를 구비한 것을 특징으로 하는 데이터 처리장치.
- 제 1 항에 있어서,복수의 상기 동기화 큐를 더 구비하되, 각 상기 동기화 큐는, 파이프라인들 중 일 파이프라인에서의 소정 파이프라인단과 그 파이프라인들 중 다른 파이프라인에서의 상대방 파이프라인단을 결합하는 것을 특징으로 하는 데이터 처리장치.
- 제 1 항 또는 제 2 항에 있어서,적어도 한 개의 동기화 큐들 중 하나는 명령어 큐이고, 상기 소정 파이프라인단은 제 1 파이프라인 내에 있고 그 명령어 큐 내에 코프로세서 명령어를 식별하는 토큰이 설치되게 구성되고, 상기 상대방 파이프라인단은 제 2 파이프라인 내에 있고 토큰의 수신시에 그 토큰에 의해 식별된 코프로세서를 처리하기 시작가능하도록 동작하는 것을 특징으로 하는 데이터 처리장치.
- 제 3 항에 있어서,소정의 파이프라인단은 제 1 파이프라인에서의 페치단이고, 상대방 파이프라인단은 제 2 파이프라인에서의 디코드단이고, 그 디코드단은 토큰의 수신시에 코프로세서 명령어를 디코딩 가능하도록 동작하는 것을 특징으로 하는 데이터 처리장치.
- 제 4 항에 있어서,상기 제 1 파이프라인에서의 페치단은, 명령어들의 시퀀스에서의 명령어마다 명령어 큐에 토큰이 놓일 수 있도록 동작하고, 제 2 파이프라인에서의 디코드단은 관련된 토큰의 수신시 각 명령어를 디코딩하도록 구성되어 그 명령어가 코프로세서에 의해 더 처리될 필요가 있는 코프로세서 명령어인지를 결정하는 것을 특징으로 하는 데이터 처리장치.
- 선행하는 청구항 중 어느 한 항에 있어서,적어도 한 개의 동기화 큐들 중 한개는 취소 큐이고, 상기 소정 파이프라인단은 제 1 파이프라인 내에 있고 상기 소정 파이프라인단에서의 코프로세서 명령어가 취소되어야 하는지를 식별하는 토큰을 그 취소 큐 내에 놓이게 하도록 구성되고, 상기 상대방 파이프라인단은 제 2 파이프라인 내에 있고, 상기 취소 큐로부터 토큰의 수신시에, 토큰이 코프로세서 명령어가 취소된 것을 식별하는 경우, 그 코프로세서 명령어가 취소될 수 있도록 동작하는 것을 특징으로 하는 데이터 처리장치.
- 제 6 항에 있어서,소정의 파이프라인단은 제 1 파이프라인에서의 이슈단이고, 상대방 파이프라인단은 제 2 파이프라인에서의 이슈단 다음의 단인 것을 특징으로 하는 데이터 처리장치.
- 제 6 항 또는 제 7 항에 있어서,상대방 파이프라인단은, 취소 큐로부터 토큰의 수신시, 그 토큰이 코프로세서 명령어가 취소되는 것을 식별하는 경우, 제 2 파이프라인으로부터 코프로세서 명령어를 제거 가능하도록 동작하는 것을 특징으로 하는 데이터 처리장치.
- 선행하는 청구항 중 어느 한 항에 있어서,적어도 한 개의 동기화 큐들 중 한 개는 종료 큐이고, 소정의 파이프라인단은, 제 1 파이프라인 내에 있고, 그 소정의 파이프라인단에서의 코프로세서 명령어가 제 2 파이프라인으로부터 리타이어되게 하기 위한 허락을 식별하는 토큰을 그 종료 큐 내에 놓여지게 구성되며, 상대방 파이프라인단은, 제 2 파이프라인 내에 있고, 상기 종료 큐로부터 토큰의 수신시, 그 코프로세서 명령어가 리타이어되게 허락되는 것을 상기 토큰이 식별하는 경우, 그 코프로세서 명령어가 리타이어될 수 있도록 동작하는 것을 특징으로 하는 데이터 처리장치.
- 제 9 항에 있어서,소정의 파이프라인단은 제 1 파이프라인에서의 라이트 백단이고, 상대방 파이프라인단은 제 2 파이프라인에서의 라이트 백단인 것을 특징으로 하는 데이터 처리장치.
- 선행하는 청구항 중 어느 한 항에 있어서,적어도 한 개의 동기화 큐들 중 하나는 길이 큐이고, 소정의 파이프라인단은 제 2 파이프라인 내에 있고 벡터 코프로세서 명령어에 대해, 그 벡터 코프로세서 명령어용 길이 정보를 식별하는 토큰을 상기 길이 큐 내에 놓이도록 구성되고, 상대방 파이프라인단은 제 1 파이프라인 내에 있고, 상기 길이 큐로부터 토큰의 수신시, 상기 길이 정보를 그 제 1 파이프라인 내의 벡터 코프로세서 명령어의 추가의 처리로 인수분해 가능하도록 동작하는 것을 특징으로 하는 데이터 처리장치.
- 제 11 항에 있어서,소정의 파이프라인단은 제 2 파이프라인 내에서 디코드단이고, 상대방 파이프라인단은 제 1 파이프라인 내에서의 제 1 실행단인 것을 특징으로 하는 데이터 처리장치.
- 선행하는 청구항 중 어느 한 항에 있어서,적어도 한 개의 동기화 큐들 중 한 개는, 어셉트 큐이고, 소정의 파이프라인단은, 제 2 파이프라인 내에 있고, 그 소정의 파이프라인단에서의 코프로세서 명령어가 코프로세서에 의한 실행을 위해 어셉트될 것인지를 식별하는 토큰을 상기 어셉트 큐 내에 놓이도록 구성되고, 상대방 파이프라인단은, 제 1 파이프라인 내에 있고, 상기 어셉트 큐로부터 토큰의 수신시, 그 코프로세서 명령어가 어셉트되지 않은 것을 토큰이 식별하는 경우, 메인 프로세서가 그 코프로세서 명령어를 거절 가능하도록 동작하는 것을 특징으로 하는 데이터 처리장치.
- 제 13 항에 있어서,소정의 파이프라인단은 제 2 파이프라인 내의 이슈단이고, 상대방 파이프라인단은 제 1 파이프라인 내의 제 2 실행단인 것을 특징으로 하는 데이터 처리장치.
- 제 13 항 또는 제 14 항에 있어서,상대방 파이프라인단은, 상기 어셉트 큐로부터 토큰의 수신시, 코프로세서 명령어가 어셉트되지 않는 것을 토큰이 식별하는 경우, 상기 제 1 파이프라인으로부터 코프로세서 명령어를 제거 가능하도록 동작하는 것을 특징으로 하는 데이터 처리장치.
- 선행하는 청구항 중 어느 한 항에 있어서,적어도 한 개의 동기화 큐들 중 한 개는, 데이터 항목을 코프로세서로부터 메인 프로세서에 의해 액세스가능한 메모리로 전송할 수 있도록 동작하는 저장 명령어일 때 사용된 저장 큐이고, 소정의 파이프라인단은 제 2 파이프라인 내에 있고, 상기 저장 명령어들 중 하나를 처리할 때, 전송되는 각 데이터 항목을 식별하는 토큰을 상기 저장 큐 내에 놓이게 하도록 구성되고, 상대방 파이프라인단은, 제 1 파이프라인 내에 있고, 상기 저장 큐로부터 각 토큰의 수신시, 대응한 데이터 항목을 메모리에 전송될 수 있도록 동작하는 것을 특징으로 하는 데이터 처리장치.
- 제 16 항에 있어서,소정의 파이프라인단은 제 2 파이프라인 내의 이슈단이고, 상대방 파이프라인단은 제 1 파이프라인 내의 어드레스 생성단인 것을 특징으로 하는 데이터 처리장치.
- 선행하는 청구항 중 어느 한 항에 있어서,적어도 한 개의 동기화 큐들 중 한 개는, 메인 프로세서에 의해 액세스 가능한 메모리로부터 코프로세서로 데이터 항목을 전송 가능하도록 동작하는 로드 명령어가 코프로세서 명령어일 때 사용된 로드 큐이고, 소정의 파이프라인단은 제 1 파이프라인 내에 있고, 상기 로드 명령어들 중 하나를 처리할 때, 전송되는 각 데이터 항목을 식별하는 토큰을 상기 로드 큐 내에 놓이게 하도록 구성되고, 상대방 파이프라인단은, 제 2 파이프라인 내에 있고, 로드 큐로부터 각 토큰의 수신시, 대응한 데이터 항목을 코프로세서에 전송될 수 있도록 동작하는 것을 특징으로 하는 데이터 처리장치.
- 제 17 항에 있어서,소정의 파이프라인단은 제 1 파이프라인 내에서의 라이트 백단이고, 상대방 파이프라인단은 제 2 파이프라인 내에서의 라이트 백단인 것을 특징으로 하는 데이터 처리장치.
- 제 16 항에 종속되는 경우의 제 18 항에 있어서,로드 명령어와 저장 명령어는 전송되는 다수의 데이터 항목을 정의하는 벡터 코프로세서 명령어들이어도 되고, 상기 장치는, 로드 큐와 저장 큐 중 적어도 한 개와 관련되고, 제어신호를 소정의 파이프라인단에 보내어 소정 파이프라인단에 의해 토큰들의 발행을 정지하고, 관련된 로드 또는 저장 큐가 충만해지는 것을 판단 가능하도록 동작하는 흐름 제어로직을 더 구비한 것을 특징으로 하는 데이터 처리장치.
- 제 20 항에 있어서,상기 흐름 제어로직은, 상대방 파이프라인단이 데이터 항목을 어셉트할 수 없는 것을 메인 프로세서로부터의 표시를 수신할 때 제어신호를 발행 가능하도록 동작하는 것을 특징으로 하는 데이터 처리장치.
- 제 21 항에 있어서,상기 로드 큐는 이중 버퍼인 것을 특징으로 하는 데이터 처리장치.
- 선행하는 청구항 중 어느 한 항에 있어서,각 토큰은 그 토큰에 관계하는 코프로세서 명령어를 식별하는 태그를 구비한 것을 특징으로 하는 데이터 처리장치.
- 제 23 항에 있어서,상기 메인 프로세서는, 제 1 및 제 2 파이프라인 모두로부터 코프로세서 명령어들을 플러시하는데 필요한 경우, 플러시 신호를 플러시될 필요가 있는 가장 오래된 명령어에 관련된 태그를 식별하는 코프로세서에게 브로드캐스트 가능하도록 동작하고, 코프로세서는 태그로부터 그 가장 오래된 명령어를 식별하고, 그 가장 오래된 명령어와 코프로세서 내의 임의의 나중의 명령어들을 제 2 파이프라인으로부터 플러시 가능하도록 동작하는 것을 특징으로 하는 데이터 처리장치.
- 제 24 항에 있어서,상기 적어도 한 개의 동기화 큐들 중 1개 이상은, 태그를, 그 큐 내의 토큰들을 플러시하는 것을 식별하는데 사용하면서, 상기 플러시 신호에 따라 플러시되는 것을 특징으로 하는 데이터 처리장치.
- 선행하는 청구항 중 어느 한 항에 있어서,적어도 한 개의 동기화 큐는, 토큰들을 저장하는 소정 수의 엔트리들을 갖는 퍼스트-인-퍼스트 아웃(FIFO) 버퍼를 구비한 것을 특징으로 하는 데이터 처리장치.
- 선행하는 청구항 중 어느 한 항에 있어서,상기 복수의 코프로세서에는, 메인 프로세서에서의 파이프라인단과 코프로세서들 중 하나에서의 파이프라인단을 결합하는 각 동기화 큐가 구비되어 있는 것을 특징으로 하는 데이터 처리장치.
- 선행하는 청구항 중 어느 한 항에 있어서,상기 데이터 처리장치는 동기 설계를 가지므로, 토큰들은 소정의 파이프라인단에 의해 그 큐 내에 놓이게 하고, 클록 사이클의 에지를 변경할 때 상대방 파이프라인단에 의해 그 큐로부터 수신되게 하는 것을 특징으로 하는 데이터 처리장치.
- 명령어들로 이루어진 시퀀스를 실행 가능하도록 동작하고, 제1의 복수의 파이프라인단을 갖는 제 1 파이프라인을 포함하는 메인 프로세서와, 상기 명령어들로 이루어진 시퀀스 내의 코프로세서 명령어들을 실행 가능하도록 동작하고, 제2의 복수의 파이프라인단을 갖는 제 2 파이프라인을 포함하는 코프로세서를 구비하되, 각 코프로세서 명령어는 제 1 파이프라인과 제 2 파이프라인 모두를 통해 라우팅되도록 구성되는, 데이터 처리장치에서의 파이프라인들간의 동기화 방법에 있어서,(a) 파이프라인들 중 하나의 파이프라인에서의 소정의 파이프라인단과 파이프라인들 중 다른 파이프라인에서의 상대방 파이프라인단을 동기화 큐를 통해 결합하는 단계와,(b) 소정의 파이프라인단이 코프로세서 명령어를 처리하고 있을 때 동기화 큐 내에 토큰을 놓는 단계와,(c) 상대방 파이프라인단에 의해 동기화 큐로부터 토큰의 수신시, 상대방 파이프라인단 내에 코프로세서 명령어를 처리하는 단계를 포함하여서,소정의 파이프라인단과 상대방 파이프라인단 사이의 제 1 및 제 2 파이프라인의 동기화가 얻어지는 것을 특징으로 하는 동기화 방법.
- 제 29 항에 있어서,복수의 상기 동기화 큐가 설치되고, 상기 단계 (a) 내지 (c)는 동기화 큐마다 수행되는 것을 특징으로 하는 동기화 방법.
- 제 29 항 또는 제 30 항에 있어서,적어도 한 개의 동기화 큐들 중 하나는 명령어 큐이고, 소정의 파이프라인단은 제 1 파이프라인 내에 있고 상대방 파이프라인단은 제 2 파이프라인 내에 있고, 상기 방법은,상기 단계(b)에서, 상기 명령어 큐 내에 코프로세서 명령어를 식별하는 토큰을 놓는 단계와,상기 단계(c)에서, 토큰의 수신시, 상대방 파이프라인단 내의 상기 토큰에 의해 식별된 코프로세서 명령어의 처리를 시작하는 단계를 포함하는 것을 특징으로 하는 동기화 방법.
- 제 29 항 내지 제 31 항 중 어느 한 항에 있어서,적어도 한 개의 동기화 큐들 중 한개는 취소 큐이고, 상기 소정 파이프라인단은 제 1 파이프라인 내에 있고 상기 상대방 파이프라인단은 제 2 파이프라인 내에 있고, 상기 방법은,상기 단계(b)에서, 상기 소정 파이프라인단에서의 코프로세서 명령어가 취소되어야 하는지를 식별하는 토큰을 상기 취소 큐 내에 놓는 단계와,상기 단계(c)에서, 상기 상대방 파이프라인단에 의해 상기 취소 큐로부터 토큰의 수신시에, 그 토큰이 코프로세서 명령어가 취소된 것을 식별하는 경우, 그 코프로세서 명령어를 취소되게 하는 단계를 포함한 것을 특징으로 하는 동기화 방법.
- 제 29 항 내지 제 32 항 중 어느 한 항에 있어서,적어도 한 개의 동기화 큐들 중 한 개는 종료 큐이고, 소정의 파이프라인단은 제 1 파이프라인 내에 있고 상대방 파이프라인단은 제 2 파이프라인 내에 있고, 상기 방법은,상기 단계(b)에서, 소정의 파이프라인단에서의 코프로세서 명령어가 제 2 파이프라인으로부터 리타이어되게 하기 위한 허락을 식별하는 토큰을 상기 종료 큐 내에 놓는 단계와,상기 단계(c)에서, 상기 상대방 파이프라인단에 의해 상기 종료 큐로부터 토큰의 수신시, 그 코프로세서 명령어가 리타이어되게 허락되는 것을 상기 토큰이 식별하는 경우, 그 코프로세서 명령어를 리타이어시키는 단계를 포함한 것을 특징으로 하는 동기화 방법.
- 제 29 항 내지 제 33 항 중 어느 한 항에 있어서,적어도 한 개의 동기화 큐들 중 하나는 길이 큐이고, 소정의 파이프라인단은 제 2 파이프라인 내에 있고 상대방 파이프라인단은 제 1 파이프라인 내에 있고, 상기 방법은,상기 단계(b)에서, 벡터 코프로세서 명령어에 대해, 그 벡터 코프로세서 명령어용 길이 정보를 식별하는 토큰을 상기 길이 큐 내에 놓는 단계와,상기 단계(c)에서, 상대방 파이프라인단에 의해 상기 길이 큐로부터 토큰의 수신시, 상기 길이 정보를 그 제 1 파이프라인 내의 상기 벡터 코프로세서 명령어의 추가의 처리로 인수분해하는 단계를 포함한 것을 특징으로 하는 동기화 방법.
- 제 29 항 내지 제 34 항 중 어느 한 항에 있어서,적어도 한 개의 동기화 큐들 중 한 개는, 어셉트 큐이고, 소정의 파이프라인단은 제 2 파이프라인 내에 있고 상대방 파이프라인단은 제 1 파이프라인 내에 있고, 상기 방법은,상기 단계(b)에서, 소정의 파이프라인단에서의 코프로세서 명령어가 코프로세서에 의한 실행을 위해 어셉트될 것인지를 식별하는 토큰을 상기 어셉트 큐 내에 놓는 단계와,상기 단계(c)에서, 상대방 파이프라인단에 의해 상기 어셉트 큐로부터 토큰의 수신시, 그 코프로세서 명령어가 어셉트되지 않은 것을 토큰이 식별하는 경우, 메인 프로세서가 그 코프로세서 명령어를 거절하는 단계를 포함한 것을 특징으로 하는 동기화 방법.
- 제 29 항 내지 제 35 항 중 어느 한 항에 있어서,적어도 한 개의 동기화 큐들 중 한 개는, 데이터 항목을 코프로세서로부터 메인 프로세서에 의해 액세스가능한 메모리로 전송할 수 있도록 동작하는 저장 명령어일 때 사용된 저장 큐이고, 소정의 파이프라인단은 제 2 파이프라인 내에 있고, 상대방 파이프라인단은 제 1 파이프라인 내에 있고, 상기 방법은,상기 단계(b)에서, 상기 저장 명령어들 중 하나를 처리할 때, 전송되는 각 데이터 항목을 식별하는 토큰을 상기 저장 큐 내에 놓는 단계와,상기 단계(c)에서, 상대방 파이프라인단에 의해 상기 저장 큐로부터 각 토큰의 수신시, 대응한 데이터 항목을 메모리에 전송되도록 하는 단계를 포함한 것을 특징으로 하는 동기화 방법.
- 제 29 항 내지 제 36 항 중 어느 한 항에 있어서,적어도 한 개의 동기화 큐들 중 한 개는, 메인 프로세서에 의해 액세스 가능한 메모리로부터 코프로세서로 데이터 항목을 전송 가능하도록 동작하는 로드 명령어가 코프로세서 명령어일 때 사용된 로드 큐이고, 소정의 파이프라인단은 제 1 파이프라인 내에 있고, 상대방 파이프라인단은 제 2 파이프라인 내에 있고, 상기 방법은,상기 단계(b)에서, 상기 로드 명령어들 중 하나를 처리할 때, 전송되는 각 데이터 항목을 식별하는 토큰을 상기 로드 큐 내에 놓는 단계와,상기 단계(c)에서, 상대방 파이프라인단에 의해 로드 큐로부터 각 토큰의 수신시, 대응한 데이터 항목을 코프로세서에 전송되도록 하는 단계를 포함한 것을 특징으로 하는 동기화 방법.
- 제 36 항에 종속되는 경우의 제 37 항에 있어서,로드 명령어와 저장 명령어는 전송되는 다수의 데이터 항목을 정의하는 벡터 코프로세서 명령어들이어도 되고, 상기 방법은,(d) 로드 큐와 저장 큐 중 적어도 한 개에 대해, 제어신호를 소정의 파이프라인단에 보내어 소정 파이프라인단에 의해 토큰들의 발행을 정지시키고, 관련된 로드 또는 저장 큐가 충만해지는 것을 판단하는 단계를 더 포함한 것을 특징으로 하는 동기화 방법.
- 제 38 항에 있어서,상기 단계(d)는 저장 큐에 대해 수행되고, 상기 단계(d)에서, 상기 방법은, 상대방 파이프라인단이 데이터 항목을 어셉트할 수 없는 것을 메인 프로세서로부터의 표시를 수신할 때 제어신호를 발행하는 단계를 포함한 것을 특징으로 하는 동기화 방법.
- 제 29 항 내지 제 39 항 중 어느 한 항에 있어서,각 토큰은 그 토큰에 관계하는 코프로세서 명령어를 식별하는 태그를 구비한 것을 특징으로 하는 동기화 방법.
- 제 40 항에 있어서,제 1 및 제 2 파이프라인 모두로부터 코프로세서 명령어들을 플러시하는데 필요한 경우, 상기 방법은,메인 프로세서로부터 코프로세서에게 플러시될 필요가 있는 가장 오래된 명령어에 관련된 태그를 식별하는 플러시 신호를 브로드캐스트 하는 단계와,상기 코프로세서 내에서, 태그로부터 그 가장 오래된 명령어를 식별하고, 그 가장 오래된 명령어와 상기 코프로세서 내의 임의의 나중의 명령어들을 제 2 파이프라인으로부터 플러시하는 단계를 더 포함한 것을 특징으로 하는 동기화 방법.
- 제 41 항에 있어서,상기 적어도 한 개의 동기화 큐들 중 1개 이상을, 그 큐 내의 토큰들을 플러시하는 것을 식별하는데 태그를 사용하면서, 상기 플러시 신호에 따라 플러시하는 단계를 더 포함한 것을 특징으로 하는 동기화 방법.
- 제 29 항 내지 제 42 항 중 어느 한 항에 있어서,적어도 한 개의 동기화 큐는, 토큰들을 저장하는 소정 수의 엔트리들을 갖는 퍼스트-인-퍼스트 아웃(FIFO) 버퍼를 구비한 것을 특징으로 하는 동기화 방법.
- 제 29 항 내지 제 43 항 중 어느 한 항에 있어서,상기 복수의 코프로세서에는, 메인 프로세서에서의 파이프라인단과 코프로세서들 중 하나에서의 파이프라인단을 결합하는 각 동기화 큐가 구비되어 있는 것을 특징으로 하는 동기화 방법.
- 제 29 항 내지 제 44 항 중 어느 한 항에 있어서,상기 데이터 처리장치는 동기 설계를 가지므로, 토큰들은, 소정의 파이프라인단에 의해 그 큐 내에 놓이고, 클록 사이클의 에지를 변경할 때 상대방 파이프라인단에 의해 그 큐로부터 수신되는 것을 특징으로 하는 동기화 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0220559A GB2392742B (en) | 2002-09-04 | 2002-09-04 | Synchronisation between pipelines in a data processing apparatus |
GB0220559.9 | 2002-09-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050057199A true KR20050057199A (ko) | 2005-06-16 |
KR100983786B1 KR100983786B1 (ko) | 2010-09-28 |
Family
ID=9943500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020057003803A KR100983786B1 (ko) | 2002-09-04 | 2003-06-04 | 데이터 처리장치에서의 파이프라인들간의 동기화 |
Country Status (13)
Country | Link |
---|---|
US (1) | US7490221B2 (ko) |
EP (1) | EP1535144B3 (ko) |
JP (1) | JP3981378B2 (ko) |
KR (1) | KR100983786B1 (ko) |
CN (1) | CN100367193C (ko) |
AU (1) | AU2003241029A1 (ko) |
DE (2) | DE60306937T4 (ko) |
GB (1) | GB2392742B (ko) |
IL (2) | IL165381A0 (ko) |
MY (1) | MY131233A (ko) |
RU (1) | RU2005109409A (ko) |
TW (1) | TWI309019B (ko) |
WO (1) | WO2004023290A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101123443B1 (ko) * | 2007-02-06 | 2012-06-12 | 인터내셔널 비지네스 머신즈 코포레이션 | 프로세서 시스템에서 명령어 레벨에서의 자원 할당 식별을 가능하게 하는 방법 및 장치 |
KR101541001B1 (ko) * | 2011-02-04 | 2015-07-31 | 퀄컴 인코포레이티드 | 아직 발행되지 않은 명령들에 대한 얼리 액세스를 가진 코프로세서를 구비한 프로세서 |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7346759B1 (en) | 2004-08-06 | 2008-03-18 | Xilinx, Inc. | Decoder interface |
US7546441B1 (en) | 2004-08-06 | 2009-06-09 | Xilinx, Inc. | Coprocessor interface controller |
US7590823B1 (en) * | 2004-08-06 | 2009-09-15 | Xilinx, Inc. | Method and system for handling an instruction not supported in a coprocessor formed using configurable logic |
US7590822B1 (en) * | 2004-08-06 | 2009-09-15 | Xilinx, Inc. | Tracking an instruction through a processor pipeline |
US7603544B2 (en) * | 2004-12-23 | 2009-10-13 | Intel Corporation | Dynamic allocation of a buffer across multiple clients in multi-threaded processor without performing a complete flush of data associated with allocation |
US7328331B2 (en) * | 2005-01-25 | 2008-02-05 | Hewlett-Packard Development Company, L.P. | Method and system of aligning execution point of duplicate copies of a user program by copying memory stores |
JP4527571B2 (ja) * | 2005-03-14 | 2010-08-18 | 富士通株式会社 | 再構成可能演算処理装置 |
JP3867804B2 (ja) * | 2005-03-22 | 2007-01-17 | セイコーエプソン株式会社 | 集積回路装置 |
US7493471B2 (en) * | 2005-10-31 | 2009-02-17 | Sun Microsystems, Inc. | Coprocessor receiving renamed register identifier from master to complete an operation upon register data ready |
US7490223B2 (en) * | 2005-10-31 | 2009-02-10 | Sun Microsystems, Inc. | Dynamic resource allocation among master processors that require service from a coprocessor |
US7668186B1 (en) * | 2006-03-07 | 2010-02-23 | Xilinx, Inc. | Token ecosystem for buffer management |
US8145882B1 (en) * | 2006-05-25 | 2012-03-27 | Mips Technologies, Inc. | Apparatus and method for processing template based user defined instructions |
US8032734B2 (en) * | 2006-09-06 | 2011-10-04 | Mips Technologies, Inc. | Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor |
US7647475B2 (en) * | 2006-09-06 | 2010-01-12 | Mips Technologies, Inc. | System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue |
US20080082793A1 (en) * | 2006-09-29 | 2008-04-03 | Mips Technologies, Inc. | Detection and prevention of write-after-write hazards, and applications thereof |
US9946547B2 (en) | 2006-09-29 | 2018-04-17 | Arm Finance Overseas Limited | Load/store unit for a processor, and applications thereof |
US7594079B2 (en) | 2006-09-29 | 2009-09-22 | Mips Technologies, Inc. | Data cache virtual hint way prediction, and applications thereof |
US8006068B1 (en) * | 2007-04-18 | 2011-08-23 | Xilinx, Inc. | Processor access to data cache with fixed or low variable latency via instructions to an auxiliary processing unit |
US7984272B2 (en) * | 2007-06-27 | 2011-07-19 | International Business Machines Corporation | Design structure for single hot forward interconnect scheme for delayed execution pipelines |
US7769987B2 (en) * | 2007-06-27 | 2010-08-03 | International Business Machines Corporation | Single hot forward interconnect scheme for delayed execution pipelines |
JP2009054032A (ja) * | 2007-08-28 | 2009-03-12 | Toshiba Corp | 並列プロセッサ |
US7788470B1 (en) * | 2008-03-27 | 2010-08-31 | Xilinx, Inc. | Shadow pipeline in an auxiliary processor unit controller |
JP5493837B2 (ja) * | 2009-12-25 | 2014-05-14 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理装置のパイプライン制御方法 |
WO2012120573A1 (ja) * | 2011-03-04 | 2012-09-13 | 日本電気株式会社 | デッドロック回避方法、デッドロック回避機構 |
JP2012252374A (ja) * | 2011-05-31 | 2012-12-20 | Renesas Electronics Corp | 情報処理装置 |
KR101849702B1 (ko) * | 2011-07-25 | 2018-04-17 | 삼성전자주식회사 | 외부 인트린직 인터페이스 |
US10534606B2 (en) | 2011-12-08 | 2020-01-14 | Oracle International Corporation | Run-length encoding decompression |
US9773531B2 (en) * | 2012-06-08 | 2017-09-26 | Hewlett Packard Enterprise Development Lp | Accessing memory |
US9378023B2 (en) | 2012-06-13 | 2016-06-28 | International Business Machines Corporation | Cross-pipe serialization for multi-pipeline processor |
US9582287B2 (en) * | 2012-09-27 | 2017-02-28 | Intel Corporation | Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions |
US20140281429A1 (en) * | 2013-03-14 | 2014-09-18 | Qualcomm Incorporated | Eliminating redundant synchronization barriers in instruction processing circuits, and related processor systems, methods, and computer-readable media |
CN103383641A (zh) * | 2013-04-19 | 2013-11-06 | 中国科学院自动化研究所 | 一种多流水线同步装置 |
CN104424129B (zh) * | 2013-08-19 | 2019-07-26 | 上海芯豪微电子有限公司 | 基于指令读缓冲的缓存系统和方法 |
US10318305B2 (en) * | 2013-09-06 | 2019-06-11 | Huawei Technologies Co., Ltd. | System and method for an asynchronous processor with pepelined arithmetic and logic unit |
US9325520B2 (en) * | 2013-09-06 | 2016-04-26 | Huawei Technologies Co., Ltd. | System and method for an asynchronous processor with scheduled token passing |
US11113054B2 (en) | 2013-09-10 | 2021-09-07 | Oracle International Corporation | Efficient hardware instructions for single instruction multiple data processors: fast fixed-length value compression |
EP2940575B1 (en) * | 2014-05-02 | 2018-05-09 | Nxp B.V. | Controller circuits, data interface blocks, and methods for transferring data |
US20150378900A1 (en) * | 2014-06-27 | 2015-12-31 | International Business Machines Corporation | Co-processor memory accesses in a transactional memory |
US11132203B2 (en) * | 2014-08-14 | 2021-09-28 | Texas Instruments Incorporated | System and method for synchronizing instruction execution between a central processor and a coprocessor |
US9870339B2 (en) | 2015-06-26 | 2018-01-16 | Intel Corporation | Hardware processors and methods for tightly-coupled heterogeneous computing |
US10120683B2 (en) * | 2016-04-27 | 2018-11-06 | International Business Machines Corporation | Supporting even instruction tag (‘ITAG’) requirements in a multi-slice processor using null internal operations (IOPs) |
US10599488B2 (en) | 2016-06-29 | 2020-03-24 | Oracle International Corporation | Multi-purpose events for notification and sequence control in multi-core processor systems |
US10380058B2 (en) * | 2016-09-06 | 2019-08-13 | Oracle International Corporation | Processor core to coprocessor interface with FIFO semantics |
US10783102B2 (en) | 2016-10-11 | 2020-09-22 | Oracle International Corporation | Dynamically configurable high performance database-aware hash engine |
GB2563384B (en) * | 2017-06-07 | 2019-12-25 | Advanced Risc Mach Ltd | Programmable instruction buffering |
US10552162B2 (en) | 2018-01-22 | 2020-02-04 | International Business Machines Corporation | Variable latency flush filtering |
GB2570729B (en) * | 2018-02-06 | 2022-04-06 | Xmos Ltd | Processing system |
CN110896406A (zh) * | 2018-09-13 | 2020-03-20 | 华为技术有限公司 | 数据存储方法、装置及服务器 |
CN111258657B (zh) * | 2020-01-23 | 2020-11-20 | 上海燧原智能科技有限公司 | 流水线控制方法及相关设备 |
US11734017B1 (en) | 2020-12-07 | 2023-08-22 | Waymo Llc | Methods and systems for processing vehicle sensor data across multiple digital signal processing cores virtually arranged in segments based on a type of sensor |
US11301410B1 (en) * | 2020-12-13 | 2022-04-12 | Advanced Mciro Devices, Inc. | Tags for request packets on a network communication link |
CN112738469A (zh) * | 2020-12-25 | 2021-04-30 | 浙江合众新能源汽车有限公司 | 图像处理方法、设备、系统和计算机可读介质 |
US20220245261A1 (en) * | 2021-02-01 | 2022-08-04 | Protegrity Corporation | Parallel tokenization of date and time information in a distributed network environment |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2564805B2 (ja) * | 1985-08-08 | 1996-12-18 | 日本電気株式会社 | 情報処理装置 |
US5241635A (en) * | 1988-11-18 | 1993-08-31 | Massachusetts Institute Of Technology | Tagged token data processing system with operand matching in activation frames |
US5197140A (en) * | 1989-11-17 | 1993-03-23 | Texas Instruments Incorporated | Sliced addressing multi-processor and method of operation |
US5430850A (en) * | 1991-07-22 | 1995-07-04 | Massachusetts Institute Of Technology | Data processing system with synchronization coprocessor for multiple threads |
US6112017A (en) * | 1992-06-30 | 2000-08-29 | Discovision Associates | Pipeline processing machine having a plurality of reconfigurable processing stages interconnected by a two-wire interface bus |
US6240508B1 (en) * | 1992-07-06 | 2001-05-29 | Compaq Computer Corporation | Decode and execution synchronized pipeline processing using decode generated memory read queue with stop entry to allow execution generated memory read |
US5572704A (en) * | 1993-12-15 | 1996-11-05 | Silicon Graphics, Inc. | System and method for controlling split-level caches in a multi-processor system including data loss and deadlock prevention schemes |
US5860000A (en) * | 1996-01-31 | 1999-01-12 | Hitachi Micro Systems, Inc. | Floating point unit pipeline synchronized with processor pipeline |
US6259456B1 (en) * | 1997-04-30 | 2001-07-10 | Canon Kabushiki Kaisha | Data normalization techniques |
US6381692B1 (en) | 1997-07-16 | 2002-04-30 | California Institute Of Technology | Pipelined asynchronous processing |
US6477638B1 (en) | 1999-10-01 | 2002-11-05 | Hitachi, Ltd. | Synchronized instruction advancement through CPU and FPU pipelines |
-
2002
- 2002-09-04 GB GB0220559A patent/GB2392742B/en not_active Expired - Lifetime
-
2003
- 2003-06-04 IL IL16538103A patent/IL165381A0/xx unknown
- 2003-06-04 EP EP03730347A patent/EP1535144B3/en not_active Expired - Lifetime
- 2003-06-04 KR KR1020057003803A patent/KR100983786B1/ko active IP Right Grant
- 2003-06-04 DE DE60306937T patent/DE60306937T4/de not_active Expired - Lifetime
- 2003-06-04 JP JP2004533589A patent/JP3981378B2/ja not_active Expired - Lifetime
- 2003-06-04 CN CNB03821122XA patent/CN100367193C/zh not_active Expired - Lifetime
- 2003-06-04 WO PCT/GB2003/002411 patent/WO2004023290A1/en active IP Right Grant
- 2003-06-04 RU RU2005109409/09A patent/RU2005109409A/ru not_active Application Discontinuation
- 2003-06-04 AU AU2003241029A patent/AU2003241029A1/en not_active Abandoned
- 2003-06-04 DE DE60306937A patent/DE60306937D1/de not_active Expired - Lifetime
- 2003-06-24 US US10/601,575 patent/US7490221B2/en active Active
- 2003-06-24 MY MYPI20032349A patent/MY131233A/en unknown
- 2003-09-02 TW TW092124261A patent/TWI309019B/zh not_active IP Right Cessation
-
2004
- 2004-11-24 IL IL165381A patent/IL165381A/en active IP Right Grant
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101123443B1 (ko) * | 2007-02-06 | 2012-06-12 | 인터내셔널 비지네스 머신즈 코포레이션 | 프로세서 시스템에서 명령어 레벨에서의 자원 할당 식별을 가능하게 하는 방법 및 장치 |
US8407451B2 (en) | 2007-02-06 | 2013-03-26 | International Business Machines Corporation | Method and apparatus for enabling resource allocation identification at the instruction level in a processor system |
KR101541001B1 (ko) * | 2011-02-04 | 2015-07-31 | 퀄컴 인코포레이티드 | 아직 발행되지 않은 명령들에 대한 얼리 액세스를 가진 코프로세서를 구비한 프로세서 |
Also Published As
Publication number | Publication date |
---|---|
DE60306937T2 (de) | 2007-02-15 |
JP3981378B2 (ja) | 2007-09-26 |
MY131233A (en) | 2007-07-31 |
GB2392742B (en) | 2005-10-19 |
WO2004023290A1 (en) | 2004-03-18 |
DE60306937T4 (de) | 2009-03-05 |
TW200409023A (en) | 2004-06-01 |
AU2003241029A1 (en) | 2004-03-29 |
EP1535144B1 (en) | 2006-07-19 |
US20040044878A1 (en) | 2004-03-04 |
IL165381A (en) | 2010-04-15 |
CN1678988A (zh) | 2005-10-05 |
KR100983786B1 (ko) | 2010-09-28 |
IL165381A0 (en) | 2006-01-15 |
TWI309019B (en) | 2009-04-21 |
JP2005538439A (ja) | 2005-12-15 |
DE60306937D1 (de) | 2006-08-31 |
CN100367193C (zh) | 2008-02-06 |
US7490221B2 (en) | 2009-02-10 |
GB2392742A (en) | 2004-03-10 |
EP1535144A1 (en) | 2005-06-01 |
EP1535144B3 (en) | 2009-02-18 |
RU2005109409A (ru) | 2005-09-10 |
GB0220559D0 (en) | 2002-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100983786B1 (ko) | 데이터 처리장치에서의 파이프라인들간의 동기화 | |
US6035389A (en) | Scheduling instructions with different latencies | |
US5790822A (en) | Method and apparatus for providing a re-ordered instruction cache in a pipelined microprocessor | |
US7454598B2 (en) | Controlling out of order execution pipelines issue tagging | |
US20060212682A1 (en) | Processor utilizing novel architectural ordering scheme | |
JP5209933B2 (ja) | データ処理装置 | |
JP2000029699A (ja) | プロセサア―キテクチャ | |
JPH0115093B2 (ko) | ||
US7484078B2 (en) | Pipelined asynchronous instruction processor having two write pipeline stages with control of write ordering from stages to maintain sequential program ordering | |
JP3779012B2 (ja) | 分岐による中断のないパイプライン化されたマイクロプロセッサ及びその動作方法 | |
US6385719B1 (en) | Method and apparatus for synchronizing parallel pipelines in a superscalar microprocessor | |
US20100031011A1 (en) | Method and apparatus for optimized method of bht banking and multiple updates | |
US5889975A (en) | Method and apparatus permitting the use of a pipe stage having an unknown depth with a single microprocessor core | |
JP3708022B2 (ja) | プロセッサ | |
US7143247B1 (en) | Method and apparatus for parallel execution pipeline data storage in a computer memory | |
JPH1196005A (ja) | 並列処理装置 | |
GB2393811A (en) | A configurable microprocessor architecture incorporating direct execution unit connectivity | |
JP2814683B2 (ja) | 命令処理装置 | |
JPWO2008155839A1 (ja) | 命令処理装置 | |
JPH076037A (ja) | 命令解読装置 | |
JP2812615B2 (ja) | 命令バッファ回路制御方式 | |
JP2000099328A (ja) | プロセッサ及びその実行制御方法 | |
US6754814B1 (en) | Instruction processing apparatus using a microprogram that implements a re-reading operation by controlling early loading of instructions | |
US20030046523A1 (en) | Program loading mechanism through a single input data path | |
JP2002351658A (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 | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130820 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140825 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20150819 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20160818 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20170818 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20180816 Year of fee payment: 9 |