1 |
1
삭제
|
2 |
2
복수의 프로세서 코어; 및
상기 복수의 프로세서 코어와 운영체제 버스를 통해 연결되며, 상기 복수의 프로세서 코어로부터의 운영체제 서비스 요청에 대해서 인터럽트 핸들링, 작업 동기화, 작업 스케쥴링, 컨텍스트 교환 및 작업 재개 동작을 하드웨어적으로 수행하는 하드웨어 운영체제를 포함하고,
상기 하드웨어 운영체제는,
작업 상태, 우선순위, 중단 큐(Wait Queue), 세마포어 상태 및 이들의 결합 중 하나인 작업 정보를 저장하는 쓰레드 제어 메모리;
대기 큐에 등록된 작업 중 가장 높은 우선순위의 작업을 선택하고 세마포어 접근을 제어하는 쓰레드 관리자;
생성된 작업의 컨텍스트가 저장되는 컨텍스트 메모리;
수행을 재개할 작업의 컨텍스트 또는 수행이 중단된 작업의 컨텍스트가 저장되는 컨텍스트 버퍼;
상기 쓰레드 관리자에 의해 선택된 작업에 대한 컨텍스트를 상기 컨텍스트 메모리로부터 읽어와 상기 컨텍스트 버퍼에 저장하거나 수행이 중단되어 상기 컨텍스트 버퍼에 저장된 작업의 컨텍스트를 상기 컨텍스트 메모리에 저장하는 컨텍스트 관리자; 및
상기 운영체제 버스에 연결되며, 상기 프로세서 코어로부터의 상기 운영체제 서비스 요청에 따라 상기 쓰레드 관리자 및 상기 컨텍스트 관리자를 제어하는 주 제어기를 포함하는 것을 특징으로 하는 멀티 프로세서 시스템
|
3 |
3
제2항에 있어서,
상기 쓰레드 제어 메모리는, 상기 작업이 대기 상태인 경우 제1 값을 가지고 상기 작업이 중단된 경우 제2 값을 가지는 대기 큐(Ready Queue)와, 상기 작업의 우선순위를 포함하는 작업 스케쥴링을 위한 정보와, 각 세마포어 별 세마포어 상태 플래그와 세마포어 값을 포함하는 세마포어 접근 제어를 위한 정보와, 상기 세마포어에 대기하고 있는 작업들이 등록되는 중단 큐(Wait Queue)를 포함하는 것을 특징으로 하는 멀티 프로세서 시스템
|
4 |
4
제3항에 있어서,
상기 쓰레드 제어 메모리는 쓰레드 디스크립터(Thread Descriptor)와 세마포어 디스크립터(Semaphore Descriptor)를 포함하되,
상기 쓰레드 디스크립터의 필드값과 상기 세마포어 디스크립터의 필드값으로부터 상기 작업 스케쥴링을 위한 정보, 상기 세마포어 접근 제어를 위한 정보 및 상기 중단 큐의 획득이 가능한 것을 특징으로 하는 멀티 프로세서 시스템
|
5 |
5
제4항에 있어서,
상기 작업 스케쥴링을 위한 정보는 상기 쓰레드 디스크립터의 필드 중 상기 우선순위의 상위 비트 및 하위 비트를 나타내는 2개의 필드에 저장되고,
상기 세마포어 접근 제어를 위한 정보는 상기 세마포어 디스크립터의 필드 중 상기 세마포어 디스크립터의 사용 여부를 나타내는 플래그, 상기 세마포어의 종류를 나타내는 플래그 및 상기 세마포어 값이 저장되는 3개의 필드에 각각 저장되는 것을 특징으로 하는 멀티 프로세서 시스템
|
6 |
6
제5항에 있어서,
상기 중단 큐는 상기 세마포어의 디스크립터 중 나머지 1개의 필드와, 상기 쓰레드 디스크립터 중 나머지 2개의 필드를 이용하여 구현되는 것을 특징으로 하는 멀티 프로세서 시스템
|
7 |
7
제6항에 있어서,
상기 세마포어 디스크립터의 나머지 1개의 필드가 음수인 경우 한 개 이상의 작업이 상기 중단 큐에 등록되어 있음을 나타내며, 상기 쓰레드 디스크립터의 나머지 2개의 필드 중 제1 필드에는 첫 번째 작업의 ID가 저장되고,
제2 필드가 제1 값인 경우 타 작업이 추가적으로 상기 중단 큐에 등록되어 있음을 나타내고, 후속 작업의 ID가 상기 제1 필드에 저장되어 있고,
상기 제2 필드가 제2 값인 경우 상기 작업이 상기 중단 큐에 등록된 마지막 작업임을 나타내는 것을 특징으로 하는 멀티 프로세서 시스템
|
8 |
8
삭제
|
9 |
9
복수의 프로세서 코어를 포함하는 멀티 프로세서 시스템에 있어서,
상기 복수의 프로세서 코어와 연결되어 상기 복수의 프로세서 코어로부터의 운영체제 서비스 요청에 대해서 인터럽트 핸들링, 작업 동기화, 작업 스케쥴링, 컨텍스트 교환 및 작업 재개 동작을 수행하는 운영체제;
상기 복수의 프로세서 코어를 지원하는 명령어들이 미리 저장되는 공유형 명령어 캐시; 및
상기 복수의 프로세서 코어를 지원하는 데이터들이 미리 저장되는 공유형 데이터 캐시를 포함하고, 상기 공유형 명령어 캐시는,
내부 통신 네트워크 및 복수의 온 칩 메모리를 포함하되, 하나의 명령어 블록을 구성하는 워드들이 서로 다른 온 칩 메모리에 분산 저장되고, 상기 분산 저장된 워드들을 동시에 읽을 수 있는 인터리브 명령어 캐시 메모리(Interleaved Instruction Cache Memory);
상기 인터리브 명령어 캐시 메모리에 저장된 명령어 블록의 일부분을 태그로 저장하고 있는 태그 메모리;
상기 운영체제 서비스 요청에 따른 명령어의 일부분과 상기 태그 메모리에 저장된 태그를 비교하여 상기 요청된 명령어가 상기 인터리브 명령어 캐시 메모리에 존재하는지를 확인하는 태그 매칭(Tag Matching)을 수행하고, 상기 태그 매칭 결과 상기 요청된 명령어가 상기 인터리브 명령어 캐시 메모리에 존재하지 않는 경우 상기 명령어 블록 요청 신호를 출력하는 캐시 제어기; 및
상기 명령어 블록 요청 신호에 따라 시스템 버스를 통해 외부 메모리로부터 명령어 블록을 읽어와 상기 인터리브 명령어 캐시 메모리에 저장하는 블록-필 제어기를 포함하는 것을 특징으로 하는 멀티 프로세서 시스템
|
10 |
10
제9항에 있어서,
상기 인터리브 명령어 캐시 메모리는 서로 다른 경로(way)에 대해서 상기 복수의 온 칩 메모리에 분산 저장되는 순서가 다른 것을 특징으로 하는 멀티 프로세서 시스템
|
11 |
11
제9항에 있어서,
상기 공유형 명령어 캐시는 명령어 블록에 처음 접근하려는 경우에 상기 태그 매칭을 수행하고, 상기 명령어 블록에 속한 명령어들을 순차적으로 읽어오는 경우에는 상기 태그 매칭을 건너뛰는 태그 매칭 스키핑(Tag Matching Skipping) 방식을 이용하는 것을 특징으로 하는 멀티 프로세서 시스템
|
12 |
12
제11항에 있어서,
상기 공유형 명령어 캐시는 상기 복수의 프로세서 코어 중 하나가 분기 명령을 수행한 경우, 상기 프로세서 코어가 순차적인 주소를 가진 명령어를 요청했으나 상기 명령어가 타 명령어 블록에 저장된 경우 상기 태그 매칭을 수행하는 것을 특징으로 하는 멀티 프로세서 시스템
|
13 |
13
제9항에 있어서,
상기 공유형 명령어 캐시는, 상기 복수의 프로세서 코어마다 할당되고, 상기 할당된 프로세서 코어가 명령어를 요청하기 전에 미리 상기 명령어를 상기 인터리브 명령어 캐시로부터 읽어와 저장하고 있는 명령어 버퍼를 더 포함하는 것을 특징으로 하는 멀티 프로세서 시스템
|
14 |
14
제13항에 있어서,
상기 명령어 버퍼는 상기 할당된 프로세서 코어가 분기 명령을 수행하였는지 여부에 대한 분기 상태 신호(Branch Status Signal)와 상기 명령어 버퍼에 저장된 명령어들의 개수에 대한 프리-펫치 압력 신호(Pre-fetch Pressure Signal)를 상기 캐시 제어기에 전달하고,
상기 캐시 제어기는 상기 분기 상태 신호와 상기 프리-펫치 압력 신호들을 이용해 읽고자 하는 명령어를 결정한 후 상기 내부 통신 네트워크를 통해 상기 복수의 온 칩 메모리로 온 칩 메모리 선택 신호를 출력하여 상기 명령어가 상기 명령어 버퍼에 삽입되도록 하는 것을 특징으로 하는 멀티 프로세서 시스템
|
15 |
15
제9항에 있어서,
상기 공유형 데이터 캐시는,
내부 통신 네트워크 및 복수의 온 칩 메모리를 포함하되, 하나의 데이터 블록을 구성하는 워드들이 서로 다른 온 칩 메모리에 분산 저장되고, 상기 분산 저장된 워드들을 동시에 읽을 수 있는 인터리브 데이터 캐시 메모리(Interleaved Data Cache Memory);
상기 인터리브 데이터 캐시 메모리에 저장된 데이터 블록의 일부분을 태그로 저장하고 있는 태그 메모리;
상기 운영체제 서비스 요청에 따른 데이터의 일부분과 상기 태그 메모리에 저장된 태그를 비교하여 상기 요청된 데이터가 상기 인터리브 데이터 캐시 메모리에 존재하는지를 확인하는 태그 매칭을 수행하고, 상기 태그 매칭 결과 상기 요청된 데이터가 상기 인터리브 데이터 캐시 메모리에 존재하지 않는 경우 상기 데이터 블록 요청 신호를 출력하는 캐시 제어기; 및
상기 데이터 블록 요청 신호에 따라 시스템 버스를 통해 외부 메모리로부터 데이터 블록을 읽어와 상기 인터리브 데이터 캐시 메모리에 저장하는 블록-필 제어기를 더 포함하는 것을 특징으로 하는 멀티 프로세서 시스템
|
16 |
16
제15항에 있어서,
상기 공유형 데이터 캐시는,
소정 시간 내에 접근하였던 온 칩 메모리의 주소들의 태그를 저장하는 히스토리 버퍼; 및
상기 히스토리 버퍼에 저장된 태그와 요청된 주소를 비교하여 상기 요청된 데이터가 상기 인터리브 데이터 캐시 메모리에 존재하는지를 판별하는 히스토리 테스터를 더 포함하는 것을 특징으로 하는 멀티 프로세서 시스템
|
17 |
17
제16항에 있어서,
상기 캐시 제어기는 상기 히스토리 테스터에 의해 판별이 끝나지 않는 경우 상기 태그 메모리로부터 상기 태그를 읽어와 상기 태그 매칭을 수행하는 것을 특징으로 하는 멀티 프로세서 시스템
|
18 |
18
제16항에 있어서,
상기 히스토리 버퍼는 스택 메모리 접근과 힙 메모리 접근을 구별하여 상기 태그를 저장하는 것을 특징으로 하는 멀티 프로세서 시스템
|
19 |
19
삭제
|