KR20100023731A - 파이프라인 동작 프로세서 및 제어 시스템 - Google Patents

파이프라인 동작 프로세서 및 제어 시스템 Download PDF

Info

Publication number
KR20100023731A
KR20100023731A KR1020090049577A KR20090049577A KR20100023731A KR 20100023731 A KR20100023731 A KR 20100023731A KR 1020090049577 A KR1020090049577 A KR 1020090049577A KR 20090049577 A KR20090049577 A KR 20090049577A KR 20100023731 A KR20100023731 A KR 20100023731A
Authority
KR
South Korea
Prior art keywords
instruction
command
control information
memory
pipeline
Prior art date
Application number
KR1020090049577A
Other languages
English (en)
Other versions
KR101092955B1 (ko
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 KR20100023731A publication Critical patent/KR20100023731A/ko
Application granted granted Critical
Publication of KR101092955B1 publication Critical patent/KR101092955B1/ko

Links

Images

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
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • 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
    • 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/3824Operand accessing
    • 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
    • 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/46Multiprogramming arrangements

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)
  • Executing Machine-Instructions (AREA)

Abstract

파이프라인 동작 프로세서(2)는 파이프라인 처리부(2b)와, 동작 메모리(4)에 대한 액세스가 요청되는 경우, 명령을 삽입하는 명령 삽입 컨트롤러(2a)를 포함하고, 스테이지의 제어 정보를 참조하여 제어 정보를 보정한다. 동작 메모리(4)에 대한 액세스를 요청하는 액세스 요청 명령을 수신 시에, 제어 프로그램(4a)이 실행 중인 경우, 명령 삽입 컨트롤러는 액세스 요청 명령 대신에, 명령 디코딩부(2b2)로부터 비동작 명령을 삽입한다. 파이프라인 처리부(2b)가 비동작을 실행하는 동안, 액세스 요청 명령이 실행되고, 연속으로 파이프라인 처리가 지속된다.
범용 프로세서, 파이프라인 동작 프로세서, 제 1 메모리, 제 2 메모리

Description

파이프라인 동작 프로세서 및 제어 시스템{PIPELINE OPERATION PROCESSOR AND CONTROL SYSTEM}
본 발명은 파이프라인 처리 기능을 구비한 파이프라인 동작 프로세서, 및 그 파이프라인 동작 프로세서에 의해 실행되는 프로그램과 동작 데이터를 저장하는 공유 메모리(shared memory)를 포함하는 제어 시스템에 관한 것이다. 더욱 상세하게는, 본 발명은 공유 메모리를 공유하는 다른 프로세서가 그 공유 메모리를 액세스하는 경우에, 처리 효율의 저하를 감소시키는 파이프라인 동작 프로세서, 및 그 파이프라인 동작 프로세서를 포함하는 제어 시스템에 관한 것이다.
최근, 파이프라인 처리 기능을 구비한 파이프라인 동작 프로세서가 제어 시스템의 고속 처리용 요건을 충족하도록 사용되어오고 있다.
통상적으로, 도 11에 도시된 구성을 구비한 시스템은 플랜트(plant)용 제어 시스템 등에 이용되고 있다. 제어 시스템은 고속의 액추에이터 또는 처리 센서와 같은 외부 입출력(I/O) 장치로부터 데이터를 처리하는 파이프라인 동작 프로세서(12)와, 파이프라인 동작 프로세서(12)를 관리하거나 다른 처리를 실행하는 범용 프로세서(11a 및 11b)와, 외부 I/O 장치의 입출력 데이터를 전송하기 위한 인터페 이스로서 기능하는 외부 입출력(I/O) 메모리(13)와, 파이프라인 동작 프로세서(12)에 의해 실행되는 제어 프로그램(14a)을 저장하고, 파이프라인 동작 프로세서(12) 및 범용 프로세서(11a 및 11b)에 의해 공유되는 동작 메모리(14)를 포함한다.
파이프라인 처리부(12b)는 명령 페치부(12b1)와, 명령 디코딩부(12b2)와, 명령 실행 및 어드레스 생성부(12b3)와, 메모리 액세스부(12b4 및 12b5)와, 기입부(12b6)를 포함한다. 파이프라인 처리부(12b)는 이들 각 부 사이의 데이터 경로를 제어하는 바이패스(bypass) 제어 회로(도시 생략)와, 외부 I/O 메모리 액세스부(12b8)와, 동작 메모리 액세스부(12b9)와, 파이프라인 처리부(12b)의 각 부들을 접속하는 파이프라인 버스(12b7)를 더 포함한다.
파이프라인 처리부(12b)는 명령을, 명령 페치부(IF)(12b1)와, 명령 디코딩부(ID)(12b2)와, 명령 실행부(MAR)(12b3)와, 메모리 액세스부(MADR, MDR)(12b4 및 12b5)와, 기입부(WR)(12b6)에 각각 대응하는 6개의 기본 스테이지로 분할한다. 따라서, 명령은 작업 처리량을 향상시키도록 병렬로 처리된다. 스케줄화된 스테이지의 동작에서 변경이 발생하는 경우, 스테이지의 실행이 도중에 중지되어 초기부터 재시작되거나, 또는 명령 시퀀스(instruction sequence)가 변화될 필요가 있다.
로드 명령(load instruction)의 결과인 데이터 해저드(data hazard)는 그러한 변경의 원인의 일예이다. 데이터 해저드에 의해 야기된 파이프라인 스톨(pipeline stall)을 방지하기 위한 로드 명령의 어드레스를 예측하는 방법이 예를 들면, 일본국 특허 제3435267호에 개시되어 있다.
파이프라인 처리의 원리 및 파이프라인 처리의 실행에서 다양한 해저드를 해 결하는 기술이 예를 들면, "Computer Architecture and Design(Vol. 2)" written by John L. Hennessy and David A. Patterson, published by Nikkei Business Publications Inc. on June 23, 1996의 23 ~ 70 페이지, 6장에 개시되어 있다.
도 12의 (a) 및 도 12의 (b)는 도 11에 도시된 통상적인 파이프라인 동작 프로세서를 사용하는 플랜트 등의 제어 시스템에 의해 파이프라인 처리의 대표 동작을 도시한다.
예를 들면, A 내지 F 명령의 각각은 도 12의 (a)에 도시된 바와 같이, 6 스테이지에서 처리되고, 각 스테이지의 동작은 클록 신호와 동기화된다. 각 명령의 실행은 하나의 스테이지에 의해 시프트(shift)된다.
통상적으로, 공유 메모리가 메모리 액세스부(12a)를 통해 범용 프로세서(11a)로부터 액세스될 때, 명령(B)이 기입부(WR)의 스테이지에서 처리되는 경우, 메모리 액세스부(12a)는 도 12의 (b)에 도시된 바와 같이, 파이프라인 처리부(12b)의 모든 스테이지의 동작을 정지시키도록 신호를 송신하고, 정지 기간 내에 동작 메모리 액세스부(12b9)를 통해, 동작 메모리(14)를 액세스한다.
그 경우, 정지 기간이 동작 중인 명령(B 내지 F)의 메모리 사이클 처리를 중단하고, 따라서, 도 12의 (b)에서 점선에 의해 둘러싸인 스테이지의 동작 위상(operation phase)은 동기 메모리의 동작 위상으로부터 변경되어, 정상적으로 실행될 수가 없다.
따라서, 파이프라인 처리를 정지시킨 후, 도 12의 (b)에 도시된 바와 같이, 다시 실행되어야 할 필요가 있는 명령(B 내지 F)이 취소된다. 따라서, 파이프라인 동작 프로세서(12)의 처리 효율이 상당히 감소한다.
즉, 스케줄화된 동작에서 변경이 발생하는 경우, 파이프라인 처리 가동 도중의 스테이지가 초기로부터 재시작된다는 불이익에 의해, 통상적인 파이프라인 동작 프로세서를 사용하는 처리의 수행이 저하될 수도 있다.
본 발명의 목적은 파이프라인 동작 프로세서, 및 공유 메모리가 액세스되는 경우, 명령들 사이의 데이터 경로의 동기화 이동에 의해 발생하는 해저드를 방지하는 동안, 파이프라인 처리를 지속할 수 있고, 파이프라인 동작 프로세스의 처리 효율의 저하를 감소시키고, 제어 프로그램의 고속 실행을 가능하게 하는 파이프라인 동작 프로세서를 포함하는 제어 시스템을 제공하는 것이다.
본 발명의 일 실시예에 따르면,
하나 이상의 범용 프로세서와,
파이프라인 처리 기능을 구비하고, 상기 하나 이상의 범용 프로세서의 버스에 접속되는 파이프라인 동작 프로세서와,
상기 파이프라인 동작 프로세서와 동작 데이터에 의해 실행되는 제어 프로그램을 저장하도록 구성된 제 1 메모리, - 여기서, 상기 제어 프로그램 및 상기 동작 데이터는 상기 하나 이상의 범용 프로세서와, 상기 파이프라인 동작 프로세서에 의해 공유됨 -와,
상기 파이프라인 동작 프로세서로부터 액세스되고, 상기 파이프라인 동작 프로세서가 입력 또는 출력하는 외부 데이터를 전송하기 위한 인터페이스로서 기능하도록 구성된 제 2 메모리를 포함하고,
상기 파이프라인 동작 프로세서는,
스테이지로서, 명령 페치부와, 명령 디코딩부와, 명령 실행 및 어드레스 생성부와, 메모리 액세스부와, 명령을 나누고 명령들을 병렬로 실행하는 기입부와, 상기 스테이지에 접속하도록 구성된 파이프라인 버스와, 명령 액세스부를 포함하는 파이프라인 처리부와,
상기 제 1 메모리에 대한 액세스가 상기 하나 이상의 범용 프로세서로부터 요청되는 경우, 명령을 상기 파이프라인 처리부로 삽입하도록 구성되고, 상기 스테이지 사이의 데이터 경로를 제어하기 위해, 상기 스테이지의 제어 정보의 상대적 이동을 보정하도록 구성되는 명령 삽입 컨트롤러를 포함하고,
상기 명령 삽입 컨트롤러는, 상기 명령 페치부가 상기 제 1 메모리로부터 상기 명령을 페치하고, 상기 제어 프로그램이 실행중인 경우에, 상기 제 1 메모리에 대해 액세스하기 위해 요청하는 액세스 요청 명령이 상기 하나 이상의 범용 프로세서로부터 수신될 때, 상기 제어 프로그램의 스케줄화된 연속 명령 대신에, 상기 명령 디코딩부로부터 비동작 명령을 삽입하여 상기 파이프라인 처리부가 비동작을 실행하도록 하거나, 또는 상기 명령 디코딩부에 의해 상기 제어 프로그램에 내장된 비동작 명령을 검출하여 상기 파이프라인 처리부가 비동작을 실행하도록 하고,
상기 파이프라인 처리부는 상기 연속 명령을 실행하고, 상기 파이프라인 동작 프로세서의 처리를 중단하지 않고, 파이프라인 처리의 실행을 지속하는 것을 특징으로 하는 제어 시스템을 제공한다.
본 발명의 다른 실시예에 따르면, 제어 프로그램의 병렬 처리를 위해 파이프라인 처리 기능을 구비하고, 스테이지로서, 명령 페치부와, 명령 디코딩부와, 명령 실행 및 어드레스 생성부와, 메모리 액세스부와, 명령을 나누고, 명령들을 병렬로 실행하는 기입부와, 상기 스테이지에 접속하도록 구성된 파이프라인 버스를 포함하는 파이프라인 처리부와,
제 1 메모리에 대한 액세스가 범용 프로세서로부터 요청되는 경우, 명령을 상기 파이프라인 처리부로 삽입하도록 구성되고, 상기 스테이지 사이의 데이터 경로를 제어하기 위해 상기 스테이지의 제어 정보의 상대적인 이동을 보정하도록 구성되는 명령 삽입 컨트롤러를 포함하고,
상기 명령 삽입 컨트롤러는, 상기 명령 페치부가 상기 제 1 메모리로부터 상기 명령을 페치하고, 상기 제어 프로그램이 실행중인 경우에, 상기 제 1 메모리에 대해 액세스하기 위해 요청하는 액세스 요청 명령이 상기 범용 프로세서로부터 수신될 때, 상기 제어 프로그램의 스케줄화된 연속 명령 대신에, 상기 명령 디코딩부로부터 비동작 명령을 삽입하여 상기 파이프라인 처리부가 비동작을 실행하도록 하거나, 또는 상기 명령 디코딩부에 의해 상기 제어 프로그램에 내장된 비동작 명령을 검출하여 상기 파이프라인 처리부가 비동작을 실행하도록 하고,
상기 파이프라인 처리부는 상기 연속 명령을 실행하고, 상기 파이프라인 동작 프로세서의 처리를 중단하지 않고, 파이프라인 처리의 실행을 지속하는 것을 특징으로 하는 파이프라인 동작 프로세서를 제공한다.
본 발명에 따르면, 파이프라인 동작 프로세서, 및 공유 메모리가 액세스되는 경우, 명령들 사이의 데이터 경로의 동기화 이동에 의해 발생하는 해저드를 방지하 는 동안, 파이프라인 처리를 지속할 수 있고, 파이프라인 동작 프로세스의 처리 효율의 저하를 감소시키고, 제어 프로그램의 고속 실행을 가능하게 하는 파이프라인 동작 프로세서를 포함하는 제어 시스템을 제공한다.
본 발명의 부가적인 목적 및 이점들은 후술하는 상세한 설명에서 설명될 것이고, 상세한 설명으로부터 일부 명백해지거나, 또는 본 발명의 실습으로부터 익힐 수 있다. 본 발명의 목적 및 이점들은 이하에서 부분적으로 지적된 수단 및 조합에 의해 이해되고, 획득될 것이다.
명세서의 일부를 구성하고 통합되는 첨부한 도면은 본 발명의 실시예를 도시하고, 상술한 일반적인 설명 및 후술하는 실시예의 상세한 설명과 함께, 본 발명의 원리를 설명하도록 기능한다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예를 설명한다.
제 1 실시예
본 발명의 제 1 실시예에 따른 파이프라인 동작 프로세서를 포함하는 제어 시스템을 도 1 내지 도 6을 참조하여 후술한다. 본 발명의 구성 및 대표 동작은 도 1 및 도 3의 (a)를 참조하여 기술된다.
파이프라인 동작 프로세서를 포함하는 제어 시스템은 범용 프로세서(1a 및 1b)와, 버스(1c)를 통해 범용 프로세서(1a 및 1b)에 접속되는 파이프라인 동작 프로세서(2)와, 제어 타겟 처리의 입출력(I/O) 장치의 입출력 데이터를 저장하는 외부 입출력(I/O) 메모리(3)와, 파이프라인 동작 프로세서(2)에 의해 실행되는 제어 프로그램(4a) 및 그에 따른 동작 데이터를 저장하는 동작 메모리(4)를 포함한다.
파이프라인 동작 프로세서(2)는 파이프라인 처리를 실행하는 파이프라인 처리부(2b)와, 복수의 스테이지를 포함하는 파이프라인 처리부(2b)로 명령을 삽입하고, 스테이지 사이의 데이터 경로를 제어하기 위해, 스테이지의 제어 정보를 참조하여 제어 정보의 이동을 보정하는 명령 삽입 컨트롤러(2a)를 포함한다.
명령 삽입 컨트롤러(2a)는 범용 프로세서(1a 또는 1b)로부터 동작 메모리(4)로 액세스 요청을 제어하는 메모리 액세스부(2a1)와, 범용 프로세서(1a 또는 1b)로부터 동작 메모리(4)로 액세스 요청을 수신하는 경우, 명령 디코딩부(2b2)(이하, 후술됨)로 비동작(NOP) 명령을 삽입하는 명령 인서터(inserter)(2a2)를 포함한다.
명령 삽입 컨트롤러(2a)는 보정된 제어 정보 버퍼(2a3)와, 멀티플렉서(multiplexer)(2a4)를 포함한다. 명령 인서터(2a2)가 보정된 제어 정보 버퍼(2a3)에 비동작 명령의 삽입에 대해 통지하는 경우, 또는 명령 디코딩부(2b2)가 명령 인서터(2a2)를 통해, 보정된 제어 정보 버퍼(2a3)에 제어 프로그램에 미리 삽입된 비동작 명령의 삽입에 대해 통지하는 경우, 보정된 제어 정보 버퍼(2a3)는 삽입시에, 파이프라인 처리부(2b)의 스테이지의 제어 정보를 저장하고, 비동작 명령에 대해 연속적인 삽입의 실행시에, 저장된 제어 정보 및 스테이지의 제어 정보 사이의 상대적인 이동을 보정하고, 그 보정된 제어 정보를 출력한다. 비동작 명령이 생성되는 경우, 멀티플렉서(2a4)는 파이프라인 처리부(2b)의 제어 정보를, 보정된 제어 정보 버퍼(2a3)의 출력으로 변화시키고, 정보를 재구성한다.
파이프라인 처리를 실행하는 명령을 스테이지별로 나누고, 명령을 병렬로 실 행하도록, 파이프라인 처리부(2b)는 스테이지로서, 명령 페치부(2b1)와, 명령 디코딩부(2b2)와, 명령 실행 및 어드레스 생성부(2b3)와, 메모리 어드레스 액세스부(2b4)와, 메모리 데이터 액세스부(2b5)와, 기입부(2b6)를 포함한다. 파이프라인 처리부(2b)는 I/O 메모리(3)에 대한 액세스를 제어하는 입출력(I/O) 메모리 액세스부(2b8)와, 동작 메모리(4)에 대한 액세스를 제어하는 동작 메모리 액세스부(2b9)와, 파이프라인 처리부(2b)의 구성 요소를 접속하는 파이프라인 버스(2b7)를 더 포함한다.
또한, 파이프라인 처리부(2b)는 스테이지 사이의 데이터 경로를, 바이패스 제어(bypass control)하는 미리 설치된 제어 정보 세팅부(도시 생략)와 제어 라인을 포함한다.
본 실시예에서, 파이프라인 처리부(2b)는 정보 페치부(2b1)로부터 기입부(2b6)까지 명령의 6개의 스테이지와 통신하는 6개의 부를 포함한다. 하지만, 파이프라인 처리부(2b)의 구성은 5개의 스테이지 또는 8개의 스테이지에 대응할 수도 있다. 파이프라인 처리부(2b)는 파이프라인 처리 기능을 갖도록만 요구될 수도 있다. 스테이지의 수는 6개에 한정되지 않는다.
I/O 메모리(3)는 파이프라인 동작 프로세서(2)의 동작과 연통된 입출력 데이터를 전송하기 위한 인터페이스로서 기능한다. 출력 데이터는 파이프라인 버스(2b7)의 프리셋 기본 버스 사이클(preset basic bus cycle)에서, 파이프라인 버스(2b7)와 I/O 메모리 액세스부(2b8)를 통해, 메모리 어드레스 액세스부(2b4)로부터 I/O 메모리(3)로 기입된다.
역으로, 입력 데이터는 I/O 메모리(3)로부터 판독되고, I/O 메모리 액세스부(2b8)를 통해 메모리 데이터 액세스부(2b5)에 송신된다.
동작 메모리(4)는 동기 메모리를 포함하고, 데이터는 동작 메모리 액세스부(2b9)를 통해, 메모리 어드레스 액세스부(2b4)로부터 동작 메모리(4)로 기입된다.
역으로, 데이터는 파이프라인 버스(2b7)의 클록 신호와 동기화하여 동작 메모리(4)로부터 판독되고, 동작 메모리 액세스부(2b9)를 통해 메모리 데이터 액세스부(2b5)에 송신된다.
다음, 상기한 바와 같이 구성된 제어 시스템의 대표적인 제어 동작은, 대표적인 파이프라인 처리가 실행시에 있는 경우에 대해 설명된다. 도 1에서 점선으로 된 화살표로 지시된 바와 같이, 파이프라인 동작 프로세서(2)에 의해 실행된 제어 프로그램(4a)은 명령 페치부(2b1)가 파이프라인 버스(2b7)를 통해 명령을 요청하도록 야기하고, 동작 메모리 액세스부(2b9)가 동작 메모리(4)를 액세스하고, 실행되는 명령이 명령 디코딩부(2b2)에 송신된다.
도 3의 (a)에서 부호(IF 내지 WR)는 각 스테이지(명령 페치부(2b1) 내지 기입부(2b6)를 포함)에 대응하는 각 파이프라인 처리의 스테이지를 각각 나타낸다. 예를 들면, 판독 명령(A 내지 F)은 병렬로 처리되고, 각 명령은 6개의 스테이지에서 처리되고, 명령의 실행은 하나의 스테이지에 의해 시프트된다.
다음, 범용 프로세서(1a 또는 1b)로부터 동작 메모리(4)로 액세스가 파이프라인 동작 프로세서(2)가 대표적인 제어 동작을 실행하는 경우에 요청될 때의 동작 에 대해 도 2 및 도 3의 (b)를 참조하여 설명한다.
도 2에서 점선으로 지시된 바와 같이, 동작 메모리(4)에 대한 액세스가 메모리 액세스부(2a1)를 통해 범용 프로세서(1a)로부터 요청되는 경우, 도 3의 (b)에 도시된 바와 같이, 명령 인서터(2a2)는 실행되도록 스케줄화되는 명령(E) 대신에 명령 디코딩부(2b2)로 비동작 명령을, 삽입하고, 스테이지의 각 부들은 비동작의 기간 동안 임의의 처리를 실행하지 않는다.
도 2에서 쇄선으로 지시된 바와 같이, 명령 인서터(2a2)는 비동작 명령의 기간 내에 동작 메모리 액세스부(2b9)를 통해 동작 메모리(4)에 대해 요청 데이터를 기입 또는 동작 메모리(4)로부터 요청 데이터를 판독한다.
도 3의 (b)의 하부는 비동작 명령이 범용 프로세서(1a)가 동작 메모리(4)에 대해 액세스를 요청하게 하는 경우에, 명령(D 및 E) 사이로 삽입될 때, 파이프라인 동작 프로세서(2)의 동작을 도시한다. 비교를 위해, 도 3의 (b)의 상부는 처리의 모든 스테이지를 정지시키는 통상적인 동작을 도시한다.
도시된 바와 같이, 하나의 비동작 명령이 삽입되고, 파이프라인 처리가 진행되는 경우, 실행 중인 명령(B 내지 F)은 완전히 정지 및 재실행될 필요가 없고, 처리시의 지연은 모든 스테이지가 중지되는 통상적인 경우와 비교해서, 비동작 명령의 삽입에 의해 발생된 하나의 스테이지로 제한된다. 따라서, 파이프라인 처리의 지속성이 확보되고, 공유 메모리에서 요청된 액세스에 의해 처리 효율의 저하를 감소시킬 수 있다.
또한, 동작 메모리(4)에 대한 액세스는 제어 프로그램에 내장될 수도 있고, 파이프라인 동작 프로세서(2)는 액세스를 실행할 수도 있다. 그러한 경우, 명령 인서터(2a)로부터 비동작 명령의 삽입이 통지될 때, 명령 디코딩부(2b2)는 제어 프로그램에 미리 내장되어 있는 비동작 명령을 검출하고, 명령 인서터(2a2)에 통지한다. 명령 인서터(2a2)는 보정된 제어 정보 버퍼(2a3)에 비동작 명령의 생성에 대해 통지한다.
비동작 명령의 통지가 이루어진 후, 보정된 제어 정보 버퍼(2a3)는, 범용 프로세서(1a)가 동작 메모리(4)에 대해 액세스 요청이 이루어지는 경우와 유사하게 동작한다.
다음, 도 2, 및 도 4 내지 도 6을 참조하여, 명령 삽입 컨트롤러(2a)의 구성 및 동작을 상세하게 설명한다.
명령 인서터(2a2)가 실행되도록 스케줄화되는 명령(E) 대신에 ID 디코딩부(2b2)로부터 비동작 명령을 삽입하는 경우, 삽입된 비동작 명령 이전의 명령의 스테이지와, 삽입 이후의 명령의 스테이지 사이의 각 위치는 도 5의 (b)에 도시된 바와 같이, 변경되고, 즉, 스테이지 사이의 독립 관계를 제어하는 제어 정보의 위상 관계가 변경된다.
따라서, 명령이 삽입되는 경우, 스테이지 사이의 데이터 경로를 제어하는 제어 정보의 위상은 보정되도록 요청된다. 보정된 제어 정보 버퍼(2a3)는 제어 정보의 이동을 보정한다. 도 4를 참조하여, 보정된 제어 정보 버퍼(2a3)를 상세하게 설명한다.
보정된 제어 정보 버퍼(2a3)는 명령 인서터(2a2)가 비동작 명령을 명령 디코 딩부(2b2)로 삽입될 때마다 제어 정보에 저장하기 위해 뱅크를 선택하는 메모리 뱅크 실렉터(selector)(2a31)와, 제어 정보를 저장하기 위해 복수의 버퍼 레지스터를 포함하는 뱅크를 포함하는 제어 정보 메모리(2a32)와, 비동작 명령에 대해 연속으로 명령의 실행시에, 비동작 명령의 삽입에 의해 발생된 스테이지 사이의 제어 정보의 각 이동을 보정하고, 대응하는 뱅크로부터 보정된 정보를 선택하여 출력하는 보정된 제어 정보 실렉터(2a33)를 포함한다.
메모리 뱅크 실렉터(2a31)는 입력 선택 링 버퍼부(2a311)와, 게이트 회로(2a312)를 포함한다. 입력 선택 링 버퍼부(2a311)는 명령 인서터(2a2)로부터 명령 삽입의 존재 또는 비존재를 저장하고, 파이프라인의 클럭 신호(Ck)와 동기화하여 순환하고, 명령 인서터(2a2)로부터 출력이 존재하고, 고 레벨 출력이 "참"으로 고려되는 기간 동안 정지하는 3개의 버퍼를 포함한다. 입력 선택 링 버퍼부(2a311)가 참으로 출력되는 경우, 게이트 회로(2a312)는 파이프라인 처리부(2b)의 스테이지의 입력 제어 정보를 수신하고, 대응하는 뱅크에 대해 참인 임의의 링 버퍼로부터 출력을 전송한다.
보정된 제어 정보 선택기(2a33)는 출력 선택 링 버퍼부(2a331) 및 멀티플렉서(2a332)를 포함한다. 출력 선택 링 버퍼부(2a331)는 삽입된 명령의 수에 대응하는 기간 동안, 즉, 정지된 스테이지에 대응하는 기간 동안, 제어 정보 메모리(2a32)의 뱅크에 저장된 제어 정보 출력을 지연하도록, 제어 정보 메모리(2a32)를 제어한다. 멀티플렉서(2a332)는 제어 정보 메모리(2a32)의 세 뱅크(L, M, N) 중 하나에 저장된 제어 정보를 입력하고, 출력 선택 링 버퍼부(2a331)로부터 출력 에 따라 선택된 제어 정보를 출력한다.
입력 선택 링 버퍼부(2a311)의 버퍼 수와, 출력 선택 링 버퍼부(2a331)의 버퍼 수와, 제어 정보 메모리(2a32)의 뱅크 수는 공유 동작 메모리(4)를 액세스하는 프로세서의 수와, 파이프라인 처리의 하나의 명령에서 스테이지당 액세스하는 횟수에 의해, 주로 결정된다. 따라서, 구성된 동기 주 메모리는 파이프라인 처리의 클럭 신호와 동기화하여, 고속으로 제어 정보의 보정을 허용한다.
다음, 상기한 바와 같이 구성된 보정된 제어 정보 버퍼(2a3)의 제어 동작이 기술된다.
예를 들면, 메모리 데이터 액세스(MDR)부(2b5)의 스테이지의 동작 결과가 명령 디코딩(ID)부(2b2)의 스테이지에 사용되는 경우, 명령(A)에 따른 메모리 데이터 액세스(MDR)부(2b5)의 제어 정보가 명령 디코딩(ID)부(2b2)의 스테이지에 의해 참조되는 그러한 방식으로, 대표적인 파이프라인 처리가 동작할 수 있다. 하지만, 동작 메모리(4)에 대한 액세스의 요청이 생성되는 경우, 비동작 명령의 삽입 후, MDR 스테이지(st1)의 제어 정보가 ID 스테이지(st3)에서 있는 것으로 참조될 때, 적당한 제어 정보가 해저드를 야기하도록 연속으로 실행된 명령에 의해 업데이트되고, 적당한 제어 정보가 사용될 수 없다.
따라서, 보정된 제어 정보 버퍼(2a3)는 제어 정보가 ID 스테이지에서 참조될 수 있도록, 적당한 제어 정보를 일시적으로 저장한다.
즉, 파이프라인 처리 동작에서 연속하는 스테이지의 제어 정보를 연속으로 저장하고, 제어 정보가 참조될 수 있도록 하기 위해, 상술한 바와 같이, 보정된 제 어 정보 버퍼(2a3)는 제어 정보의 입력에 의해 병렬로 구성된 뱅크를 포함하는 제어 정보 메모리(2a32)를 포함하고, 클럭 신호(Ck)와 동기화하여 순환하는 선택 조건과, 임의의 병렬 뱅크의 선택에 의해 제어 정보의 입력 조건 또는 출력 조건을 선택 및 제어하는 보정된 제어 정보 실렉터(2a33)와, 메모리 뱅크 실렉터(2a31)를 포함한다. 보정된 제어 정보 버퍼(2a3)는 클럭 신호와 동기화하여 명령 삽입 시에 제어 정보의 위상 이동을 보정하고, 보정된 제어 정보가 파이프라인의 스테이지에서 참조될 수 있도록 하게 하고, 따라서, 복수의 명령의 액세스 요청이 생성되는 경우에도, 제어 정보는 정상적으로 참조된다.
예를 들면, 도 6에 도시된 바와 같이, 명령(B)은 기억 부호가 CMP인 비교 명령이고, 명령(F)은 JMP로서 표현되는 조건 브랜칭 명령(condition branching instruction)이고, 명령(F)은 명령(B)으로부터 결과인 제어 정보를 참조하는 경우에, 비동작 명령이 명령(D)와 명령(E) 사이에 삽입되고, 3 비동작 명령이 명령(E)와 명령(F) 사이에 연속으로 삽입될 때, MDR의 스테이지로부터 얻어진 ID의 스테이지용 제어 정보는 화살표에 의해 지시된 바와 같이 스테이지(st3)와, 스테이지(st6 내지 st9)의 각각에 바람직하게 세팅되고, 즉 비동작 명령이 삽입되지 않은 경우에 대응하는 적당한 위상의 제어 정보가 세팅되고, 처리가 정상적으로 동작한다.
제 2 실시예
이하, 본 발명의 제 2 실시예에 따른 파이프라인 동작 프로세서를 포함하는 제어 시스템을 도 7 및 도 8을 참조하여 설명한다.
제 1 실시예의 것과 동일한 부분은 동일한 참조 번호가 부여되고, 그 상세한 설명을 생략한다.
제 2 실시예에서, 동작 메모리(4)에 대해 액세스하는 메모리가 각 명령에 관하여 우선 실행되는 점을 조정함으로써, 파이프라인 처리가 단순화된다.
일반적으로, 메모리 맵(map)에서 어드레스를 액세스하는 경우, 분명히 고정 길이 데이터를 다루는 프로세서가 이븐 바이트(even byte)의 정수곱에 대응하는 정렬로 편집된다. 프로세서는 32 비트 데이터를 다루기 위해 4 바이트 정렬로, 16 비트 데이터를 다루기 위해 2 바이트 정렬로 편집된다. 또한, 편집에 대한 실패는 정렬 에러를 의미한다.
그러한 경우, 도 7에 도시된 바와 같이, 4 바이트의 정렬 데이터는 메모리 액세스 당 기입 또는 판독될 수 있다. 하지만, 데이터가 두 배의 메모리 액세스를 요청하는 정렬 에러의 결과를 낳는 경우, 동일한 명령 삽입 및 제어 정보가 복수 회의 메모리 액세스를 가능하게 하도록 저장되고, 정상의 파이프라인 처리가 복수회의 메모리 액세스에 의해 제어 정보의 해저드를 야기하지 않고 가능하게 됨이 요청된다.
결과적으로, 도 8에 도시된 바와 같이, 명령 디코딩부(2b2)에서, ID 회로(2b12)는 동작 메모리(4)를 액세스하도록 명령과, 메모리 어드레스와, 명령의 데이터 크기를 추출하고, 정렬 검출 회로(2b13)는 정렬 에러를 검출하고, 명령 인서터(2a2)에 대해 검출 신호 결과를 전송한다. 따라서, 명령 삽입 컨트롤러(2a)에 의해, 파이프라인 동작 프로세서(2)는 제 1 실시예와 유사하게, 일 명령 당 2배의 메모리 액세스를 적당하게 실행할 수 있다.
따라서, 정렬 에러에서의 결과인 데이터를 위한 메모리 액세스는 제어 프로그램의 편집에 의해 방지될 필요가 있는 것이 아니라, 파이프라인 동작 프로세서에 의해 실행될 수 있다. 심지어, 변동 길이 데이터용 메모리 액세스가 고정 길이 명령을 실행하기 위한 파이프라인 동작 프로세서에 의해 실행될 수도 있고, 따라서, 파이프라인 동작 프로세서에 의한 처리가 빨라진다.
제 3 실시예
이하, 본 발명의 제 3 실시예에 따른 파이프라인 동작 프로세서를 포함하는 제어 시스템을 도 8 내지 도 10을 참조하여 설명한다.
제 1 실시예의 것과 동일한 부분은 동일한 참조 번호를 부여하고, 그 상세한 설명을 생략한다.
제 3 실시예에서, 파이프라인 동작 프로세서(2)로부터 I/O 메모리(3)로 복수 명령을 위한 액세스가 동작 효율을 향상시키도록 일 명령에 의해 이루어질 수 있다.
명령 디코딩부(2b2)는 도 8에 도시된 액세스 명령 감지 회로(2b14)를 포함한다. 액세스 명령 감지 회로(2b14)는 파이프라인 동작 프로세서(2)의 I/O 메모리(3)를 복수회 액세스하도록, ID 회로(2b12)에 세팅되는 명령을 검출한다. 액세스 요청의 명령을 검출 시에, 액세스 명령 검출 회로(2b14)는 명령 인서터(2a2)에 명령에 대해 통지하고, 명령 인서터(2a2)는 ID 회로(2b12)에 명령의 실행에 대해 통지하고, 복수회의 명령 삽입에 대응하는 메모리 액세스는, 메모리 액세스가 종료될 때까지, I/O 메모리 액세스부(2b8)를 통해 실행된다.
예를 들면, 도 9에서, 명령(D)은 기억 주석이 MEM WR인 기입 액세스 명령이고, 복수의 명령이 명령(D)의 실행과, 메모리 액세스의 완료 사이에 삽입된다.
명령(D)이 MADR 스테이지에 직접 전송되기 전에, 명령(A 내지 C)의 실행으로부터 결과인 데이터를 기입하는 경우 시에, 메모리 액세스가 완료될 때까지 복수 명령의 삽입이 명령(D)의 실행에 대해 연속으로 실행된다. 따라서, 스테이지 사이의 기입 데이터의 직접 전송은 데이터 해저드를 생성하지 않고, 동작 메모리(4)에 대한 메모리 액세스가 가능하게 된다.
도 10에서, 명령(D)은 기억 주석이 MEM RD인 판독 액세스 명령이고, 복수의 명령은 명령(D)의 실행 시작 시에 명령(C)의 실행에 대해 연속으로 삽입된다. 메모리 액세스의 완료는 명령(D)의 실행, 즉 MEM RD를 야기한다.
명령(D) 뒤에 실행 명령(E 내지 H)이 MDR 스테이지로부터 직접 전송된 판독 데이터를 사용하는 경우 시에, 메모리 액세스의 완료 전에 명령(D)이 연속으로 실행될 때까지, 복수의 명령이 명령(D)의 실행의 시작으로부터 삽입된다. 따라서, 스테이지 사이의 판독 데이터의 직접 전송은 데이터 해저드를 생성하지 않고, 메모리 액세스가 가능하게 된다.
제 3 실시예에 따르면, 범용 프로세서로부터 메모리 액세스가 파이프라인 동작 프로세서에 대한 파이프라인 제어에서 최소한의 효과가 가능하게 되고, 파이프라인 동작 프로세서의 동작 성능이 향상될 수 있다.
본 발명은 상술한 실시예에 한정되는 것은 아니다. 명령 삽입 컨트롤러는 비동작 명령을 공유 동작 메모리로 삽입하고, 삽입 시에 생성된 제어 정보(해저드 의 생성)의 이동을 보정할 필요만이 있다. 파이프라인 처리부의 스테이지 구성과, 동작 메모리의 회로 구성은 본 발명의 정신으로부터 벗어나지 않고, 다양하게 변경될 수 있다.
부가적인 이점 및 변경은 본 분야의 능숙한 당업자들에게 용이하게 발생할 수 있다. 따라서, 넓은 관점에서, 본 발명은 도시되고, 설명된 상세한 설명 및 대표 실시예에 한정되는 것은 아니다. 따라서, 다양한 변경이 부착된 특허청구범위 및 그 등가물에 의해 규정된 바와 같이, 일반적인 발명 개념의 정신 및 범주로부터 벗어나지 않고 이루어질 것이다.
도 1은 본 발명의 실시예에 따른 파이프라인 동작 프로세서를 포함하는 제어 시스템의 구성을 도시하는 도면.
도 2는 본 발명의 실시예에 따른 파이프라인 동작 프로세서의 구성을 도시하는 도면.
도 3의 (a) 및 도 3의 (b)는 동작 메모리(공유 메모리)가 액세스되는 경우, 파이프라인 제어 동작예를 도시하는 도면.
도 4는 본 발명의 실시예에 따른 보정된 제어 정보 버퍼의 구성을 도시하는 도면.
도 5의 (a) 및 도 5의 (b)는 보정된 제어 정보 버퍼의 파이프라인 제어 동작예를 도시하는 도면.
도 6은 보정된 제어 정보 버퍼의 다른 파이프라인 제어 동작예를 도시하는 도면.
도 7은 정렬 에러를 도시하는 도면.
도 8은 정렬 에러의 검출 및 명령 삽입 컨트롤러의 동작을 도시하는 도면.
도 9는 하나의 명령이 복수의 명령의 실행을 야기하는 경우, 명령 삽입 컨트롤러의 동작예를 도시하는 도면.
도 10은 하나의 명령이 복수의 명령의 실행을 야기하는 경우, 명령 삽입 컨트롤러의 다른 동작예를 도시하는 도면.
도 11은 통상적인 파이프라인 동작 프로세서를 포함하는 제어 시스템의 구성 을 도시하는 도면.
도 12의 (a) 및 도 12의 (b)는 통상적인 파이프라인 동작 프로세서를 포함하는 제어 시스템의 공유 메모리에 대해 액세스하는 동작을 도시하는 도면.
* 도면의 주요 부분에 대한 부호의 설명 *
1a, 1b: 범용 프로세서
2: 파이프라인 동작 프로세서
2a: 명령 삽입 컨트롤러
2a1: 메모리 액세스부
2a2: 명령 인서터
2a3: 보정된 제어 정보 버퍼
2a4: 멀티플렉서
2b1: 명령 페치
2b2: 명령 디코딩
2b3: 명령 실행/어드레스 생성
2b4: 메모리 어드레스 액세스
2b5: 메모리 데이터 액세스
2b6: 기입
2b7: 파이프라인 버스
2b8: 외부 I/O 메모리 액세스
2b9: 동작 메모리 액세스
3: 외부 I/O 메모리
4: 동작 메모리(동기 메모리)
4a: 제어 프로그램

Claims (13)

  1. 하나 이상의 범용 프로세서와,
    파이프라인 처리 기능을 구비하고, 상기 하나 이상의 범용 프로세서의 버스에 접속되는 파이프라인 동작 프로세서와,
    상기 파이프라인 동작 프로세서와 동작 데이터에 의해 실행되는 제어 프로그램을 저장하도록 구성된 제 1 메모리, - 여기서, 상기 제어 프로그램 및 상기 동작 데이터는 상기 하나 이상의 범용 프로세서와, 상기 파이프라인 동작 프로세서에 의해 공유됨 -와,
    상기 파이프라인 동작 프로세서로부터 액세스되고, 상기 파이프라인 동작 프로세서가 입력 또는 출력하는 외부 데이터를 전송하기 위한 인터페이스로서 기능하도록 구성된 제 2 메모리를 포함하고,
    상기 파이프라인 동작 프로세서는,
    스테이지로서, 명령 페치부와, 명령 디코딩부와, 명령 실행 및 어드레스 생성부와, 메모리 액세스부와, 명령을 나누고 명령들을 병렬로 실행하는 기입부와, 상기 스테이지에 접속하도록 구성된 파이프라인 버스와, 명령 액세스부를 포함하는 파이프라인 처리부와,
    상기 제 1 메모리에 대한 액세스가 상기 하나 이상의 범용 프로세서로부터 요청되는 경우, 명령을 상기 파이프라인 처리부로 삽입하도록 구성되고, 상기 스테이지 사이의 데이터 경로를 제어하기 위해, 상기 스테이지의 제어 정보의 상대적 이동을 보정하도록 구성되는 명령 삽입 컨트롤러를 포함하고,
    상기 명령 삽입 컨트롤러는, 상기 명령 페치부가 상기 제 1 메모리로부터 상기 명령을 페치하고, 상기 제어 프로그램이 실행중인 경우에, 상기 제 1 메모리에 대해 액세스하기 위해 요청하는 액세스 요청 명령이 상기 하나 이상의 범용 프로세서로부터 수신될 때, 상기 제어 프로그램의 스케줄화된 연속 명령 대신에, 상기 명령 디코딩부로부터 비동작 명령을 삽입하여 상기 파이프라인 처리부가 비동작을 실행하도록 하거나, 또는 상기 명령 디코딩부에 의해 상기 제어 프로그램에 내장된 비동작 명령을 검출하여 상기 파이프라인 처리부가 비동작을 실행하도록 하고,
    상기 파이프라인 처리부는 상기 연속 명령을 실행하고, 상기 파이프라인 동작 프로세서의 처리를 중단하지 않고, 파이프라인 처리의 실행을 지속하는 것을 특징으로 하는 제어 시스템.
  2. 제 1 항에 있어서,
    상기 제 1 메모리는 동기 메모리를 포함하고,
    상기 명령 액세스부는 상기 파이프라인 버스의 클럭 신호와 동기화하여, 상기 동기 메모리로부터 판독 데이터와, 상기 동기 메모리에 대한 기입 데이터를 실행하는 것을 특징으로 하는 제어 시스템.
  3. 제 1 항에 있어서,
    상기 파이프라인 처리부는 제 1 메모리 액세스부를 더 포함하고,
    상기 명령 삽입 컨트롤러는 상기 하나 이상의 범용 프로세서로부터 상기 제 1 메모리에 대해 액세스를 요청하는 액세스 요청을 수신하고, 비동작 명령의 실행시에 상기 제 1 메모리 액세스부를 통해 상기 제 1 메모리를 액세스하는 것을 특징으로 하는 제어 시스템.
  4. 제 1 항에 있어서,
    상기 명령 삽입 컨트롤러는,
    상기 하나 이상의 범용 프로세서로부터 상기 제 1 메모리로 상기 액세스 요청 명령을 수신하는 경우, 비동작 명령을 상기 명령 디코딩부에 삽입하도록 구성된 명령 인서터(inserter)와,
    상기 비동작 명령의 삽입이 상기 명령 인서터로부터 통지되는 경우, 또는 상기 제어 프로그램에 내장된 상기 비동작 명령이 상기 명령 인서터를 통해 상기 명령 디코딩부로부터 통지되는 경우, 상기 비동작 명령의 삽입 시에, 상기 파이프라인 처리부의 상기 스테이지의 제어 정보를 저장하고, 상기 비동작 명령에 수반하는 명령을 실행시에, 보정된 제어 정보 버퍼에 저장된 상기 제어 정보와 상기 스테이지의 제어 정보 사이의 상대적 이동을 보정하고, 상기 보정된 제어 정보를 출력하도록 구성된 보정된 제어 정보 버퍼와,
    상기 비동작 명령이 생성되는 경우, 상기 보정된 제어 정보 버퍼의 출력에 대해 상기 파이프라인 처리부의 제어 정보를 변경하고, 상기 제어 정보를 재구성하도록 구성된 제 1 멀티플렉서를 포함하는 것을 특징으로 하는 제어 시스템.
  5. 제 4 항에 있어서,
    상기 보정된 제어 정보 버퍼는,
    상기 제어 정보를 저장하기 위한 뱅크를 포함하는 제어 정보 메모리와,
    상기 비동작 명령이 삽입될 때마다 상기 제어 정보를 저장하기 위해 상기 뱅크 중 하나를 선택하도록 구성된 메모리 뱅크 실렉터(selector)와,
    상기 비동작 명령을 삽입함으로써 야기된 상기 스테이지 사이의 상기 뱅크의 각각에 저장된 상기 제어 정보의 상대적인 이동을 보정하고, 상기 비동작 명령에 수반하는 명령을 실행 시에, 보정된 제어 정보를 재구성하고, 대응하는 뱅크로부터 상기 보정된 제어 정보를 선택 및 출력하도록 구성된 보정된 제어 정보 실렉터와,
    상기 비동작 명령의 삽입 전에 상기 제어 정보와, 상기 보정된 제어 정보 실렉터로부터 출력 중 하나를 선택하도록 구성된 제 2 멀티플렉서를 포함하는 것을 특징으로 하는 제어 시스템.
  6. 제 1 항에 있어서,
    상기 명령 디코딩부는,
    상기 명령 페치부에 의해 페치된 상기 명령의 명령 코드와, 상기 명령의 어드레스를 저장하도록 구성된 ID 회로와,
    상기 명령 코드와, 상기 ID 회로에 저장된 상기 어드레스에 의한 정렬 에러의 존재 또는 비존재를 검출하도록 구성된 정렬 에러 검출 회로를 포함하고,
    상기 정렬 에러 검출 회로가 상기 정렬 에러를 검출하는 경우, 상기 명령 인서터는 상기 정렬 에러의 존재 또는 비존재에 대해 통지되고,
    상기 명령 인서터는 상기 정렬 에러의 존재 또는 비존재에 의한 상기 제 1 메모리에 대해 액세스를 실행하도록, 상기 정렬 에러의 존재 또는 비존재에 대응하는 상기 명령 코드의 삽입에 대해, ID 회로에 통지하는 것을 특징으로 하는 제어 시스템.
  7. 제 1 항에 있어서,
    상기 명령 디코딩부는,
    상기 명령 페치부에 의해 페치된 상기 명령의 명령 코드를 저장하도록 구성된 ID 회로와,
    상기 제 2 메모리를 상기 ID 회로에 저장된 상기 명령 코드에 의해 복수회 액세스하기 위한 요청 명령을 검출하도록 구성된 액세스 명령 검출 회로를 포함하고,
    상기 액세스 명령 검출 회로가 상기 복수회 액세스하기 위한 상기 요청 명령을 검출하는 경우, 상기 명령 인서터는 액세스의 횟수에 대해 통지되고,
    상기 명령 인서터는 상기 제 2 메모리를 상기 복수회 액세스하는 것을 실행하도록, 상기 횟수에 대응하는 상기 명령 코드의 삽입에 대해, 상기 ID 회로에 통지하는 것을 특징으로 하는 제어 시스템.
  8. 제어 프로그램의 병렬 처리를 위해 파이프라인 처리 기능을 구비하고, 스테이지로서, 명령 페치부와, 명령 디코딩부와, 명령 실행 및 어드레스 생성부와, 메모리 액세스부와, 명령을 나누고, 명령들을 병렬로 실행하는 기입부와, 상기 스테이지에 접속하도록 구성된 파이프라인 버스를 포함하는 파이프라인 처리부와,
    제 1 메모리에 대한 액세스가 범용 프로세서로부터 요청되는 경우, 명령을 상기 파이프라인 처리부로 삽입하도록 구성되고, 상기 스테이지 사이의 데이터 경로를 제어하기 위해 상기 스테이지의 제어 정보의 상대적인 이동을 보정하도록 구성되는 명령 삽입 컨트롤러를 포함하고,
    상기 명령 삽입 컨트롤러는, 상기 명령 페치부가 상기 제 1 메모리로부터 상기 명령을 페치하고, 상기 제어 프로그램이 실행중인 경우에, 상기 제 1 메모리에 대해 액세스하기 위해 요청하는 액세스 요청 명령이 상기 범용 프로세서로부터 수신될 때, 상기 제어 프로그램의 스케줄화된 연속 명령 대신에, 상기 명령 디코딩부로부터 비동작 명령을 삽입하여 상기 파이프라인 처리부가 비동작을 실행하도록 하거나, 또는 상기 명령 디코딩부에 의해 상기 제어 프로그램에 내장된 비동작 명령을 검출하여 상기 파이프라인 처리부가 비동작을 실행하도록 하고,
    상기 파이프라인 처리부는 상기 연속 명령을 실행하고, 상기 파이프라인 동작 프로세서의 처리를 중단하지 않고, 파이프라인 처리의 실행을 지속하는 것을 특징으로 하는 파이프라인 동작 프로세서.
  9. 제 8 항에 있어서,
    상기 제 1 메모리는 동기 메모리를 포함하고,
    상기 파이프라인 동작 프로세서는 상기 파이프라인 버스의 클럭 신호와 동기화하여, 상기 동기 메모리로부터 판독 데이터 및 상기 동기 메모리에 대한 기입 데이터를 실행하도록 구성된 명령 액세스부를 더 포함하는 것을 특징으로 하는 파이프라인 동작 프로세서.
  10. 제 8 항에 있어서,
    상기 명령 삽입 컨트롤러는,
    상기 범용 프로세서로부터 상기 제 1 메모리로 상기 액세스 요청 명령을 수신하는 경우, 비동작 명령을 상기 명령 디코딩부에 삽입하도록 구성된 명령 인서터와,
    상기 비동작 명령을 삽입 시에 상기 파이프라인 처리부의 상기 스테이지의 제어 정보를 저장하고, 상기 비동작 명령의 삽입이 상기 명령 인서터로부터 통지되는 경우, 상기 비동작 명령에 수반하는 명령을 실행 시에, 보정된 제어 정보 버퍼에 저장된 상기 제어 정보와 상기 스테이지의 제어 정보 사이의 상대적인 이동을 보정하고, 상기 비동작 명령의 삽입이 상기 명령 인서터로부터 통지되는 경우, 또는 상기 제어 프로그램에 내장된 상기 비동작 명령이 상기 명령 인서터를 통해 상기 명령 디코딩부로부터 통지되는 경우, 상기 보정된 제어 정보를 출력하도록 구성된 보정된 제어 정보 버퍼와,
    상기 비동작 명령이 생성되는 경우, 상기 보정된 제어 정보 버퍼의 출력에 대해 상기 파이프라인 처리부의 제어 명령을 변경하고, 상기 제어 정보를 재구성하도록 구성된 제 1 멀티플렉서를 포함하는 것을 특징으로 하는 파이프라인 동작 프로세서.
  11. 제 8 항에 있어서,
    상기 보정된 제어 정보 버퍼는,
    상기 제어 정보를 저장하기 위한 뱅크를 포함하는 제어 정보 메모리와,
    상기 비동작 명령이 삽입될 때마다 상기 제어 정보를 저장하기 위해 상기 뱅크 중 하나를 선택하도록 구성된 메모리 뱅크 실렉터와,
    상기 비동작 명령을 삽입함으로써 야기된 상기 스테이지 사이의 상기 뱅크의 각각에 저장된 상기 제어 정보의 상대적 이동을 보정하고, 상기 수반하는 명령을 실행 시에, 대응하는 뱅크로부터 보정된 제어 정보를 선택 및 출력하도록 구성된 보정된 제어 정보 실렉터와,
    상기 비동작 명령의 삽입 전에 상기 제어 정보와, 상기 보정된 제어 정보 실렉터로부터 출력 중 하나를 선택하도록 구성된 제 2 멀티플렉서를 포함하는 것을 특징으로 하는 파이프라인 동작 프로세서.
  12. 제 8 항에 있어서,
    상기 명령 디코딩부는,
    상기 명령 페치부에 의해 페치된 상기 명령의 명령 코드와, 상기 명령의 어 드레스를 저장하도록 구성된 ID 회로와,
    상기 명령 코드와 상기 ID 회로에 저장된 상기 어드레스에 의한 정렬 에러의 존재 또는 비존재를 검출하도록 구성된 정렬 에러 검출 회로를 포함하고,
    상기 정렬 에러 검출 회로가 상기 정렬 에러를 검출하는 경우, 상기 명령 인서터는 상기 정렬 에러의 존재 또는 비존재에 대해 통지되고,
    상기 명령 인서터는 상기 정렬 에러의 존재 또는 비존재에 의해 상기 제 1 메모리에 대한 액세스를 수행하도록 상기 정렬 에러의 존재 또는 비존재에 대응하는 상기 명령 코드의 삽입에 대해, 상기 ID 회로에 통지하는 것을 특징으로 하는 파이프라인 동작 프로세서.
  13. 제 8 항에 있어서,
    상기 명령 디코딩부는,
    상기 명령 페치부에 의해 페치된 상기 명령의 명령 코드를 저장하도록 구성된 ID 회로와,
    상기 ID 회로에 저장된 상기 명령 코드에 의해 제 2 메모리를 복수회 액세스하기 위한 요청 명령을 검출하도록 구성된 액세스 명령 검출 회로를 포함하고,
    상기 액세스 명령 검출 회로가 상기 복수회를 액세스하기 위한 상기 요청 명령을 검출하는 경우, 상기 명령 인서터는 액세스의 횟수에 대해 통지되고,
    상기 명령 인서터는 상기 제 2 메모리를 상기 복수회 액세스하는 것을 실행하도록 상기 횟수에 대응하는 상기 명령 코드의 삽입에 대해, 상기 ID 회로에 통지 하는 것을 특징으로 하는 파이프라인 동작 프로세서.
KR1020090049577A 2008-08-21 2009-06-04 파이프라인 동작 프로세서 및 제어 시스템 KR101092955B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008213351A JP5395383B2 (ja) 2008-08-21 2008-08-21 パイプライン演算プロセッサを備える制御システム
JPJP-P-2008-213351 2008-08-21

Publications (2)

Publication Number Publication Date
KR20100023731A true KR20100023731A (ko) 2010-03-04
KR101092955B1 KR101092955B1 (ko) 2011-12-12

Family

ID=41566931

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090049577A KR101092955B1 (ko) 2008-08-21 2009-06-04 파이프라인 동작 프로세서 및 제어 시스템

Country Status (6)

Country Link
US (1) US8200950B2 (ko)
JP (1) JP5395383B2 (ko)
KR (1) KR101092955B1 (ko)
CN (1) CN101655784B (ko)
DE (1) DE102009024012A1 (ko)
TW (1) TWI408601B (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826052B (zh) * 2010-05-04 2012-07-04 中国人民解放军国防科学技术大学 Nual执行语义微处理器中保持延时一致性的断点实现方法
CN101866281B (zh) * 2010-06-13 2013-05-22 清华大学 一种多周期指令执行方法和装置
US8522076B2 (en) * 2010-06-23 2013-08-27 International Business Machines Corporation Error detection and recovery in a shared pipeline
US9529596B2 (en) * 2011-07-01 2016-12-27 Intel Corporation Method and apparatus for scheduling instructions in a multi-strand out of order processor with instruction synchronization bits and scoreboard bits
US8635501B2 (en) 2011-07-25 2014-01-21 Microsoft Corporation Detecting memory hazards in parallel computing
CN102830953B (zh) * 2012-08-02 2017-08-25 中兴通讯股份有限公司 指令处理方法及网络处理器指令处理装置
US9268597B2 (en) * 2014-04-01 2016-02-23 Google Inc. Incremental parallel processing of data
WO2019021344A1 (ja) 2017-07-24 2019-01-31 オリンパス株式会社 画像処理装置および撮像装置
CN111857831B (zh) * 2020-06-11 2021-07-20 成都海光微电子技术有限公司 一种存储体冲突优化方法、并行处理器及电子设备
CN111930426A (zh) * 2020-08-14 2020-11-13 西安邮电大学 一种可重构计算的双模指令集架构及其应用方法
US11921843B2 (en) 2021-09-26 2024-03-05 Ceremorphic, Inc. Multi-threaded secure processor with control flow attack detection
KR20240063179A (ko) * 2021-09-26 2024-05-13 세레모픽 인코포레이티드 제어 플로우 공격 검출 기능을 구비한 코어 프로세서 및 용장 브랜치 프로세서

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05100844A (ja) * 1991-10-08 1993-04-23 Nec Corp マイクロ・プロセツサのプログラムウエイト制御回路
JPH06161778A (ja) * 1992-11-26 1994-06-10 Fujitsu Ltd マルチフロー命令制御方法及び命令処理装置
JP3435267B2 (ja) 1995-11-07 2003-08-11 株式会社東芝 マイクロプロセッサ及びそのロードアドレス予想方法
US5860000A (en) * 1996-01-31 1999-01-12 Hitachi Micro Systems, Inc. Floating point unit pipeline synchronized with processor pipeline
JP3014682B2 (ja) * 1997-11-21 2000-02-28 松下電器産業株式会社 プログラム制御方法及び装置
US6112297A (en) * 1998-02-10 2000-08-29 International Business Machines Corporation Apparatus and method for processing misaligned load instructions in a processor supporting out of order execution
JP2000298652A (ja) * 1999-04-14 2000-10-24 Mitsubishi Electric Corp マルチプロセッサ
EP1190337A2 (en) * 1999-05-13 2002-03-27 ARC International U.S. Holdings Inc. Method and apparatus for processor pipeline segmentation and re-assembly
KR20030017982A (ko) 2000-06-02 2003-03-04 선 마이크로시스템즈 인코포레이티드 브이.엘.아이.더블유. 프로세서에서 부분적으로파이프라인으로 연결된 명령을 동기시키는 방법
US7248585B2 (en) * 2001-10-22 2007-07-24 Sun Microsystems, Inc. Method and apparatus for a packet classifier
US6877077B2 (en) * 2001-12-07 2005-04-05 Sun Microsystems, Inc. Memory controller and method using read and write queues and an ordering queue for dispatching read and write memory requests out of order to reduce memory latency
US6891543B2 (en) * 2002-05-08 2005-05-10 Intel Corporation Method and system for optimally sharing memory between a host processor and graphics processor
JP4412905B2 (ja) * 2003-01-28 2010-02-10 パナソニック株式会社 低電力動作制御装置、およびプログラム最適化装置
US7373536B2 (en) 2004-08-04 2008-05-13 Kabushiki Kaisha Toshiba Fine granularity halt instruction
US7278014B2 (en) * 2004-12-02 2007-10-02 International Business Machines Corporation System and method for simulating hardware interrupts
US7437537B2 (en) * 2005-02-17 2008-10-14 Qualcomm Incorporated Methods and apparatus for predicting unaligned memory access
US7814487B2 (en) 2005-04-26 2010-10-12 Qualcomm Incorporated System and method of executing program threads in a multi-threaded processor

Also Published As

Publication number Publication date
US8200950B2 (en) 2012-06-12
JP5395383B2 (ja) 2014-01-22
CN101655784A (zh) 2010-02-24
KR101092955B1 (ko) 2011-12-12
TW201011644A (en) 2010-03-16
JP2010049500A (ja) 2010-03-04
TWI408601B (zh) 2013-09-11
US20100050026A1 (en) 2010-02-25
CN101655784B (zh) 2013-03-06
DE102009024012A1 (de) 2010-02-25

Similar Documents

Publication Publication Date Title
KR101092955B1 (ko) 파이프라인 동작 프로세서 및 제어 시스템
JP3120152B2 (ja) コンピューターシステム
EP2480979B1 (en) Unanimous branch instructions in a parallel thread processor
JP5145809B2 (ja) 分岐予測装置、ハイブリッド分岐予測装置、プロセッサ、分岐予測方法、及び分岐予測制御プログラム
JP2000330789A (ja) コンピュータシステムおよびその命令実行方法
JP3439033B2 (ja) 割り込み制御装置及びプロセッサ
JPH02232737A (ja) パイプライン方式コンピューターシステムにおいてエラーを検出し訂正する方法及び装置
US11693661B2 (en) Mechanism for interrupting and resuming execution on an unprotected pipeline processor
KR100210205B1 (ko) 스톨캐쉬를 제공하기 위한 장치 및 방법
JP2000066894A (ja) パイプライン化浮動小数点ストア
US5619667A (en) Method and apparatus for fast fill of translator instruction queue
US20020099910A1 (en) High speed low power cacheless computer system
US6675287B1 (en) Method and apparatus for store forwarding using a response buffer data path in a write-allocate-configurable microprocessor
US6865665B2 (en) Processor pipeline cache miss apparatus and method for operation
US6311289B1 (en) Explicit state copy in a fault tolerant system using a remote write operation
WO2006006613A1 (en) Methods and apparatus for updating of a branch history table
JP3476314B2 (ja) マイクロプロセッサ
CN117083594A (zh) 用于在矢量处理器中进行去同步化执行的方法和设备
JP2861234B2 (ja) 命令処理装置
US20080222393A1 (en) Method and arrangements for pipeline processing of instructions
JPH0769800B2 (ja) データ処理装置
JP2007041999A (ja) データ処理装置
JP2006127080A (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: 20151118

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 8