1 |
1
데이터를 저장하는 데이터 램과, 이벤트 신호를 발생시키는 트리거 레지스터 및 코어를 포함하는 컨트롤러; 및상기 컨트롤러와 연동되어 동작하는 호스트를 포함하고, 상기 호스트는 상기 데이터 램과 트리거 레지스터에 로컬버스를 통해 직접 접근하여 데이터를 쓰거나 읽는 것인 로컬버스를 이용한 호스트와 컨트롤러 간의 데이터 교환 시스템
|
2 |
2
제1항에 있어서, 상기 호스트는 FW 트리거 기설정 비트에 값을 써서 상기 컨트롤러의 내부에 인터럽트를 발생시켜 제어권을 이양받고, 상기 컨트롤러는 FW 상태를 읽어서 인터럽트의 종류를 판별하는 것인 로컬버스를 이용한 호스트와 컨트롤러 간의 데이터 교환 시스템
|
3 |
3
제1항에 있어서, 상기 호스트는 Host 트리거 기설정 비트에 값을 써서 상기 호스트에 인터럽트를 발생시켜, 상기 호스트의 제어권을 이양 받고, 상기 호스트는 Host 상태를 읽어서 인터럽트의 종류를 판별하는 것인 로컬버스를 이용한 호스트와 컨트롤러 간의 데이터 교환 시스템
|
4 |
4
제1항에 있어서, 상기 컨트롤러는 디스크립터와 메모리 블록이 논리적으로 분리되어 풀에 기할당되고, 상기 디스크립터는 링크드 리스트 구조의 메모리 블록들과 연결되는 것인 로컬버스를 이용한 호스트와 컨트롤러 간의 데이터 교환 시스템
|
5 |
5
제4항에 있어서, 상기 디스크립터는 순차적으로 연결되어 링크드 리스트 구조로 만들어져 디스크립터 리스트가 되고, 송수신 데이터의 길이 및 종류를 포함하는 부가 정보가 기록되며, 실제 데이터는 상기 메모리 블록에 분할되어 저장되는 것인 로컬버스를 이용한 호스트와 컨트롤러 간의 데이터 교환 시스템
|
6 |
6
제5항에 있어서, 상기 호스트는 Write Scheme에 따라 상기 컨트롤러의 송신 디스크립터 리스트에 직접 접근하여 데이터를 쓰는 작업을 수행하는 것인 로컬버스를 이용한 호스트와 컨트롤러 간의 데이터 교환 시스템
|
7 |
7
제6항에 있어서, 상기 호스트는 송신 디스크립터로부터 메모리 주소를 획득하고, 상기 디스크립터에 전송 데이터를 쓰고, WriteCount를 증가시키고, 상기 WriteCount와 TxDescCount값이 같으면 데이터 쓰기를 중단하여 대기하고, 상기 컨트롤러로부터 Tx_DONE 신호를 수신하면 TxOKCount 개수만큼 상기 WriteCount를 감소하며, 상기 WriteCount가 TxDescCount보다 작으면 다음 디스크립터에 데이터를 쓰고 TxReqFlag 상태를 체크하여, 상기 TxReqFlag 가 비활성화 상태인 경우 이를 활성화 상태로 만들고, 쓰기 데이터 처리를 요청하는 신호를 발생시키고, 상기 TxReqFlag 가 활성화 상태인 경우 이전에 상기 컨트롤러에 발생시킨 신호에 대한 처리가 미완료된 것으로 판단하여 상기 WriteCount와 TxDescCount값의 비교 단계로 돌아가는 것인 로컬버스를 이용한 호스트와 컨트롤러 간의 데이터 교환 시스템
|
8 |
8
제7항에 있어서, 상기 컨트롤러는 TxDataCount와 상기 TxDescCount를 비교하여 그 차이 개수만큼 풀로부터 새로운 디스크립터와 메모리 블록을 할당받고, 이를 상기 디스크립터 리스트에 추가하고, 쓰기 처리가 완료된 디스크립터 누적 개수를 상기 TxOKCount에 기록하며, 상기 호스트가 쓰기 작업을 재개할 수 있도록 상기 TX_DONE 신호를 전송하는 것인 로컬버스를 이용한 호스트와 컨트롤러 간의 데이터 교환 시스템
|
9 |
9
제5항에 있어서, 상기 호스트는 Read Scheme에 따라 상기 상기 컨트롤러의 수신 디스크립터 리스트에 직접 접근하여 데이터를 읽는 작업을 수행하는 것인 로컬버스를 이용한 호스트와 컨트롤러 간의 데이터 교환 시스템
|
10 |
10
제9항에 있어서, 상기 호스트는 RX_REQ 신호를 수신하여 수신 디스크립터로부터 메모리 주소를 획득하고, 상기 디스크립터에서 데이터를 읽고 ReadCount를 증가시키고, 상기 ReadCount와 RxDescCount값이 같으면 읽기 완료한 데이터 수를 RxCount에 기록하고, 상기 컨트롤러에 RX_END 신호를 발생시키고, 읽기 작업 완료 누적 개수만큼 상기 ReadCount를 감소시키며, 데이터 읽기를 중단하고, 상기 ReadCount가 RxDescCount보다 작으면 다음 디스크립터에서 데이터를 읽고 RxDoneFlag 상태를 체크하여, 상기 RxDoneFlag가 비활성화 상태인 경우 이를 활성화 상태로 만들고, 읽기 작업 완료 개수를 상기 RxCount에 기록하고, 상기 RX_DONE 신호를 발생시키고, 상기 RxDoneFlag가 활성화 상태인 경우 이전에 상기 컨트롤러에 발생시킨 신호에 대한 처리가 미완료된 것으로 판단하여 상기 ReadCount와 RxDescCount값의 비교 단계로 돌아가는 것인 로컬버스를 이용한 호스트와 컨트롤러 간의 데이터 교환 시스템
|
11 |
11
제10항에 있어서, 상기 컨트롤러는 상기 호스트로부터 RX_END 신호를 수신하는 경우 상기 RXCount 개수의 디스크립터 및 그에 연동되는 메모리 블록을 풀로 반환하고, 읽기 처리가 완료된 디스크립터의 누적 개수만큼 상기 RxRescCount를 감소시키고, 상기 호스트로부터 RX_DONE 신호를 수신하는 경우 상기 RXCount 개수의 디스크립터 및 그에 연동되는 메모리 블록을 풀로 반환하고, 상기 RxDoneFlag를 비활성화 상태로 변경하는 것인 로컬버스를 이용한 호스트와 컨트롤러 간의 데이터 교환 시스템
|
12 |
12
제5항에 있어서, 상기 메모리 블록은 상기 메모리 블록의 크기 및 데이터의 크기에 따라 그 개수가 가변적으로 분할되어 운영되는 것인 로컬버스를 이용한 호스트와 컨트롤러 간의 데이터 교환 시스템
|
13 |
13
(a) 읽기 또는 쓰기 요청에 따라 풀로부터 디스크립터 및 메모리 블록을 할당받는 단계; 및(b) 상기 (a) 단계에서 할당된 디스크립터 리스트에 직접 접근함으로써, 로컬버스를 통해 컨트롤러의 데이터 램과 트리거 레지스터에 직접 접근하여 데이터를 읽거나 쓰는 작업을 수행하는 단계를 포함하는 로컬버스를 이용한 호스트와 컨트롤러 간의 데이터 교환 방법
|
14 |
14
제13항에 있어서, 상기 디스크립터는 링크드 리스트 구조의 메모리 블록들과 연결되고, 복수의 상기 디스크립터가 링크드 리스트 구조로 연결되어 상기 디스크립터 리스트를 구성하며, 송수신 데이터의 길이 및 종류 정보가 기록되는 것인 로컬버스를 이용한 호스트와 컨트롤러 간의 데이터 교환 방법
|
15 |
15
제13항에 있어서, 상기 (b) 단계는 상기 데이터를 읽는 작업을 수행하는 경우, (b-1) 송신 디스크립터로부터 메모리 주소를 획득하고, 상기 디스크립터에 전송 데이터를 쓰고, WriteCount를 증가시키고, 상기 WriteCount와 TxDescCount를 비교하는 단계; (b-2-1) 상기 (b-1) 단계에서의 비교 결과, 상기 WriteCount와 TxDescCount값이 같으면 데이터 쓰기를 중단하여 대기하고, Tx_DONE 신호를 수신하면 TxOKCount 개수만큼 상기 WriteCount를 감소하는 단계; 및(b-2-2) 상기 (b-1) 단계에서의 비교 결과, 상기 WriteCount가 TxDescCount보다 작으면 다음 디스크립터에 데이터를 쓰고 TxReqFlag 상태를 체크하여, 상기 TxReqFlag 가 비활성화 상태인 경우 이를 활성화 상태로 만들고, 쓰기 데이터 처리를 요청하는 신호를 발생시키고, 상기 TxReqFlag 가 활성화 상태인 경우 이전에 발생시킨 신호에 대한 처리가 미완료된 것으로 판단하여 상기 (b-1) 단계로 복귀하는 단계를 포함하는 로컬버스를 이용한 호스트와 컨트롤러 간의 데이터 교환 방법
|
16 |
16
제13항에 있어서, 상기 (b) 단계는 상기 데이터를 쓰는 작업을 수행하는 경우, (b-3) RX_REQ 신호를 수신하여 수신 디스크립터로부터 메모리 주소를 획득하고, 상기 디스크립터에서 데이터를 읽고 ReadCount를 증가시키고, 상기 ReadCount와 RxDescCount를 비교하는 단계; (b-4-1) 상기 (b-3) 단계에서의 비교 결과, 상기 ReadCount와 RxDescCount값이 같으면 읽기 완료한 데이터 수를 RxCount에 기록하고, RX_END 신호를 발생시키고, 읽기 작업 완료 누적 개수만큼 상기 ReadCount를 감소시키며, 데이터 읽기를 중단하는 단계; 및(b-4-2) 상기 (b-3) 단계에서의 비교 결과, 상기 ReadCount가 RxDescCount보다 작으면 다음 디스크립터에서 데이터를 읽고 RxDoneFlag 상태를 체크하여, 상기 RxDoneFlag가 비활성화 상태인 경우 이를 활성화 상태로 만들고, 읽기 작업 완료 개수를 상기 RxCount에 기록하고, 상기 RX_DONE 신호를 발생시키고, 상기 RxDoneFlag가 활성화 상태인 경우 이전에 발생시킨 신호에 대한 처리가 미완료된 것으로 판단하여 상기 (b-3) 단계로 복귀하는 단계를 포함하는 로컬버스를 이용한 호스트와 컨트롤러 간의 데이터 교환 방법
|