Claims (5)
SCSI 버스 신호를 입력받고, 외부의 마이크로 프로세서와 내부제어버스를 통해 연결되는 SCSI 버스 데이타제어부; 직렬 제어버스를 통해 상기 SCSI 버스 데이타 제어부와 연결되어 버퍼를 경유하는 데이타 전송을 제어하는 버퍼제어부; 직렬 제어버스를 통해 상기 버퍼 제어부와 연결되고, 버퍼 입력버스와 버퍼 출력버스를 통해 버퍼에 데이타를 주고 받는 디스크 데이타 제어부; 직렬 제어버스를 통해 상기 디스크 데이타 제어부와 연결되고, 디스크 인터페이스에 보내는 데이타를 인코드하고 디스크 인테페이스에서 받은 신호를 디코드하는 오류 감지 및 정정부; 상기 버퍼제어부의 제어를받아 상기 SCSI 버스 데이터 제어부와 디스크 데이타 제어부로 데이타를 입력 또는 출력하는 단일 버퍼를 구비하여 이루어진 것을 특징으로 하는 단일 버퍼를 이용한 데이타 전송 제어장치.A SCSI bus data controller which receives a SCSI bus signal and is connected through an external microprocessor and an internal control bus; A buffer control unit connected to the SCSI bus data control unit through a serial control bus to control data transmission via a buffer; A disk data control unit connected to the buffer control unit via a serial control bus and transmitting and receiving data to and from a buffer through a buffer input bus and a buffer output bus; An error detection and correction unit connected to the disc data control unit via a serial control bus, for encoding data sent to the disc interface and decoding a signal received from the disc interface; And a single buffer for inputting or outputting data to the SCSI bus data control unit and the disk data control unit under the control of the buffer control unit.
제1항에 있어서, 상기 버퍼제어부는 쓰기지정레지스터 및 읽기지정레지스터에 각각 1비트씩 더 두어 두 레지스터들의 차이값을 구하도록 하는 스레숄드 계산수단; 상기 스레숄드값 계산수단으로부터 단순히 읽기지정레지스터값과쓰기지정레지스터값의 차이를 구하는 연산수단; 상기 읽기지정레지스터 및 쓰기 지정레지스터의 값을 비교하여 데이타의 오버라이트를 방지할 수 있는 신호를 발생시키는 제1비교수단; 상기 연산수단의 결과값과 사용자가 설정한 값을 비교하여 단일버퍼로부터 데이타를 읽을 수 있는 신호를 발생시키는 제2비교수단을 구비하는 것을 특징으로 하는 단일 버퍼를 이용한 데이타 전송 제어장치.2. The apparatus of claim 1, wherein the buffer control unit comprises: threshold calculation means for obtaining a difference value between two registers by adding one bit to each of the write designation register and the read designation register; Calculating means for obtaining a difference between a read designated register value and a write designated register value from the threshold value calculating means; First comparing means for comparing a value of the read designated register and the write designated register to generate a signal capable of preventing overwriting of data; And a second comparison means for generating a signal capable of reading data from a single buffer by comparing a result value of the calculation means with a value set by a user.
제1항에 있어서, 상기 단일버퍼는 링-버퍼인 것을 특징으로 하는 단일 버퍼를 이용한 데이타 전송 제어장치.The apparatus of claim 1, wherein the single buffer is a ring buffer.
제1항 또는 제3항에 있어서, 상기 링-버퍼는 쓰기지정레지스터 및 읽기지정레지스터에 각각 1비트씩 더 두어 두 레지스터들의 차이값을 구하도록 하는 스레숄드 계산수단; 상기 스레숄드값 계산수단으로부터 단순히 읽기지정레지스터값과 쓰기지정레지스터값의 차이를 구하는 연산수단; 상기 읽기지정레지스터 및 쓰기지정레지스터의 값을 비교하여 데이타의 오버라이트를 방지할 수 있는 신호를 발생시키는 제1비교수단; 상기 연산수단의 결과값과 사용자가 설정한 값을비교하여 단일버퍼로부터 데이타를 읽을 수 있는 신호를 발생시키는 제2비교수단을 구비하는 것을 특징으로 하는 단일 버퍼를 이용한 데이타 전송 제어장치.4. The apparatus of claim 1 or 3, wherein the ring-buffer further comprises: threshold calculation means for obtaining a difference value between the two registers by adding one bit to the write designation register and the read designation register, respectively; Calculating means for obtaining a difference between a read designated register value and a write designated register value from the threshold value calculating means; First comparison means for generating a signal capable of preventing overwriting of data by comparing values of the read and write registers; And a second comparing means for generating a signal capable of reading data from a single buffer by comparing a result value of the calculating means with a value set by a user.
FSM(Finite State Machine)가 링-버퍼를 사용하여 SCSI버스와 디스크 메모리간의 데이타 전송을 제어하는방법에 있어서, FSM을 포즈상태로 초기화하는 제1단계; 데이타 전송명령이 있는가 판단하여 포즈상태를 리셋하고 데이타 전송을 준비하며, 없으면 상기 제1단계로 회귀하는 제2단계; 링-버퍼에 쓸 수 있는 신호 또는 링-버퍼로부터 읽을 수 있는 신호를 판단하여 SCSI버스로부터 데이타 블록수와 블록당 바이트수를 지정한 카운터에 저장하며, 두 신호가 모두 발생하지 않았으며 제1단계로 분기하는 제3단계; 바이트 카운터를 1만큼 감소시키는 제4단계; SCSI버스에 오류발생 여부를 검사하여 오류가 발생했으면 제1단계로 회귀하고, 오류가 발생하지 않았으면 SCSI버스로부터 데이타 전송요구가 있는가를검사하는 제5단계; 상기 제5단계 수행후 전송요구가 없으면 제5단계로 분기하고, 전송요구가 있으면 링-버퍼로부터 1바이트를 읽거나 링-버퍼에 1바이트를 쓰는 제6단계; 상기 제6단계 수행후 바이트카운터의 값이 0인가 판단하여 0이 아니면제4단계로 분기하고, 0이면 블록카운터를 1만큼 감소시키는 제7단계; 블록데이터 전송중 SCSI버스 또는 링-버퍼의 데이타버스에서 패리티 오류가 발생했는지 검사하여 오류가 발생했으면 제1단계로 회귀하고, 오류가 발생하지 않았으면 모든 블록을 전송완료했는가 검사하고, 남은 데이타블록이 있으면 제3단계로 분기하는 제8단계; 데이타 전송절차를 모두 마쳤는가 판단하여 전송절차를 모두 마쳤으면 제1단계로 회귀하고, 그렇지 않으면 제3단계로 분기하는 제9단계를 포함하여 이루어지는 것을 특징으로 하는 단일 버퍼를 이용한 데이타 전송 제어장치.A method of controlling data transfer between a SCSI bus and a disk memory by a finite state machine (FSM), the method comprising: initializing the FSM to a pause state; A second step of resetting the pause state by determining whether there is a data transfer command and preparing for data transfer, and returning to the first step if not; The signal that can be written to the ring buffer or the signal that can be read from the ring buffer is judged and the number of data blocks and the number of bytes per block are stored in the designated counter from the SCSI bus. A third step of branching; A fourth step of decreasing the byte counter by one; A fifth step of checking whether an error has occurred in the SCSI bus and returning to step 1 if an error has occurred, and checking whether there is a data transfer request from the SCSI bus if the error has not occurred; A sixth step if the transfer request is not performed after the fifth step, and if there is a transfer request, a sixth step of reading one byte from the ring-buffer or writing one byte to the ring-buffer; Determining whether the value of the byte counter is 0 after performing the sixth step, and branching to the fourth step if the value is not 0, and decreasing the block counter by 1 if 0; During the block data transfer, check whether the parity error occurred on the SCSI bus or the ring-buffer data bus. If an error occurs, return to step 1. If the error does not occur, check whether all blocks have been transferred. An eighth step of branching to a third step, if present; And a ninth step of returning to the first step if the transfer step is completed and branching to the third step.
※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.※ Note: The disclosure is based on the initial application.