KR20240038505A - 어드레스 변환 제어 회로를 포함하는 양자 난수 발생 장치 및 이를 포함하는 컴퓨팅 시스템 - Google Patents

어드레스 변환 제어 회로를 포함하는 양자 난수 발생 장치 및 이를 포함하는 컴퓨팅 시스템 Download PDF

Info

Publication number
KR20240038505A
KR20240038505A KR1020220117472A KR20220117472A KR20240038505A KR 20240038505 A KR20240038505 A KR 20240038505A KR 1020220117472 A KR1020220117472 A KR 1020220117472A KR 20220117472 A KR20220117472 A KR 20220117472A KR 20240038505 A KR20240038505 A KR 20240038505A
Authority
KR
South Korea
Prior art keywords
address
random number
quantum random
control signal
slave
Prior art date
Application number
KR1020220117472A
Other languages
English (en)
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 주식회사 큐레몬
Priority to KR1020220117472A priority Critical patent/KR20240038505A/ko
Publication of KR20240038505A publication Critical patent/KR20240038505A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Electromagnetism (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)

Abstract

양자 난수를 발생하는 양자 난수 발생 장치가 개시된다. 양자 난수 발생 장치는 제1어드레스에 의해 식별되는 양자 난수 발생 칩셋과, 직렬 클락 신호를 수신하는 제1핀과 상기 직렬 클락 신호에 동기된 직렬 데이터를 수신하는 제2핀을 포함하는 커넥터와, 제1제어 신호를 생성하는 제1제어 신호 생성 회로와, 상기 제1제어 신호가 제1레벨일 때 상기 제2핀을 통해 수신된 상기 직렬 데이터에 포함된 제1어드레스를 상기 양자 난수 발생 칩셋으로 바이패스하고, 상기 제1제어 신호가 제2레벨일 때 상기 제2핀을 통해 수신된 상기 직렬 데이터에 포함된 제2어드레스를 상기 제1어드레스로 변환하여 상기 양자 난수 발생 칩셋으로 전송하는 어드레스 변환 제어 회로를 포함하고, 상기 제1어드레스가 상기 양자 난수 발생 칩셋으로 입력되면, 상기 양자 난수 발생 칩셋은 상기 직렬 클락 신호에 동기된 데이터를 상기 제2핀으로 전송한다.

Description

어드레스 변환 제어 회로를 포함하는 양자 난수 발생 장치 및 이를 포함하는 컴퓨팅 시스템{QUANTUM RANDOM NUMBER GENERATION DEVICE HAVING ADDRESS CONVERSION CONTROL CIRCUIT, AND COMPUTING SYSTEM HAVING SAME}
본 발명은 양자 난수 발생 장치에 관한 것으로, 특히 슬레이브들의 어드레스들이 동일함에 따라 발생하는 데이터 충돌을 방지할 수 있는 어드레스 변환 제어 회로를 포함하는 양자 난수 발생 장치 및 이를 포함하는 컴퓨팅 시스템에 관한 것이다.
I2C는 IIC(Inter Integrated Circuit)의 약자로 SPI(Serial Peripheral Interface)와 함께 마이크로컨트롤러가 주변 칩 또는 주변 장치와 통신을 할 때 많이 사용되는 방식이다. I2C는 TWI(Two Wire Interface)라고도 불린다.
I2C는 두 개의 전송선들(예를 들면, 직렬 클락 신호(SCL)를 전송하는 직렬 클락 신호 전송선과 직렬 데이터(SDA)를 전송하는 직렬 데이터 전송선)을 이용하여 주변 칩 또는 주변 장치와 I2C 통신을 한다.
복수 개의 슬레이브들 각각은 직렬 클락 신호 전송선과 직렬 데이터 전송선을 통해 마스터에 연결된다. 각 슬레이브는 상기 각 슬레이브에 부여된 고유한 어드레스(address)에 의해 서로 구별되므로, 마스터는 해당 슬레이브의 고유한 어드레스를 이용하여 상기 해당 슬레이브를 다른 슬레이브와 구별한다.
예를 들면, 하나의 마스터에 연결된 제1슬레이브와 제2슬레이브 각각의 고유한 어드레스가 동일할 때, 상기 제1슬레이브와 상기 제2슬레이브는 동일한 직렬 데이터 전송선을 공유하므로, 상기 제1슬레이브가 상기 마스터로 상기 직렬 데이터 전송선을 통해 데이터를 전송할 때 상기 제2슬레이브도 상기 데이터와 동일한 데이터를 상기 직렬 데이터 전송선을 통해 상기 마스터로 전송한다. 이에 따라, 제1슬레이브로부터 출력된 데이터와 제2슬레이브로부터 출력된 데이터가 충돌되므로, 상기 제1슬레이브의 작동과 상기 제2슬레이브의 작동은 불가능해진다.
등록특허공보: 등록번호 10-1826397 (2018.02.06.공고) 등록특허공보: 등록번호 10-2287653 (2021.08.06.공고)
본 발명이 이루고자 하는 기술적인 과제는, 각각이 직렬 클락 신호에 동기된 직렬 데이터를 처리할 수 있는 슬레이브들 각각의 어드레스가 동일함에 따라 발생하는 데이터 충돌을 방지할 수 있는 어드레스 변환 제어 회로를 포함하는 양자 난수 발생 장치, 및 이를 포함하는 컴퓨팅 시스템을 제공하는 것이다.
본 발명이 이루고자 하는 기술적인 과제는 양자 난수 발생 장치의 외형을 상용 시스템의 외장 장치 인터페이스 규격의 폼 팩터(form factor)로 디자인하여, 상기 양자 난수 발생 장치에서 제공되는 I2C 버스를 상기 상용 시스템의 상기 외장 장치 인터페이스에 포함된 SMBus에 연결하여, 상기 상용 시스템의 추가적인 하드웨어 수정 또는 개발없이 마스터가 상기 양자 난수 발생 장치로부터 양자 난수를 쉽게 제공받을 수 있도록 상기 양자 난수 발생 장치를 제공하는 것이다.
본 발명의 실시 예에 따른 양자 난수 발생 장치는 제1어드레스에 의해 식별되는 양자 난수 발생 칩셋과, 직렬 클락 신호를 수신하는 제1핀과 상기 직렬 클락 신호에 동기된 직렬 데이터를 수신하는 제2핀을 포함하는 커넥터와, 제1제어 신호를 생성하는 제1제어 신호 생성 회로와, 상기 제1제어 신호가 제1레벨일 때 상기 제2핀을 통해 수신된 상기 직렬 데이터에 포함된 제1어드레스를 상기 양자 난수 발생 칩셋으로 바이패스하고, 상기 제1제어 신호가 제2레벨일 때 상기 제2핀을 통해 수신된 상기 직렬 데이터에 포함된 제2어드레스를 상기 제1어드레스로 변환하여 상기 양자 난수 발생 칩셋으로 전송하는 어드레스 변환 제어 회로를 포함하고, 상기 제1어드레스가 상기 양자 난수 발생 칩셋으로 입력되면, 상기 양자 난수 발생 칩셋은 상기 직렬 클락 신호에 동기된 데이터를 상기 제2핀으로 전송한다.
본 발명에 따른 컴퓨팅 시스템은 제1어드레스에 의해 식별되는 제1슬레이브와, 상기 제1어드레스에 의해 식별되는 양자 난수 발생 칩셋을 포함하는 제2슬레이브와, 상기 제1슬레이브와 상기 제2슬레이브 각각으로 직렬 클락 신호와 상기 직렬 클락 신호에 동기된 직렬 데이터를 전송하는 마스터를 포함하고, 상기 제2슬레이브는 상기 직렬 클락 신호를 수신하는 제1핀과 상기 직렬 데이터를 수신하는 제2핀을 포함하는 커넥터와, 제1제어 신호를 생성하는 제1제어 신호 생성 회로와, 상기 제1제어 신호가 제1레벨일 때 상기 제2핀을 통해 수신된 상기 직렬 데이터에 포함된 제1어드레스를 상기 양자 난수 발생 칩셋으로 바이패스하고, 상기 제1제어 신호가 제2레벨일 때 상기 제2핀을 통해 수신된 상기 직렬 데이터에 포함된 제2어드레스를 상기 제1어드레스로 변환하여 상기 양자 난수 발생 칩셋으로 전송하는 어드레스 변환 제어 회로를 포함하고, 상기 제1어드레스가 상기 양자 난수 발생 칩셋으로 입력되면, 상기 양자 난수 발생 칩셋은 상기 직렬 클락 신호에 동기된 데이터를 상기 제2핀을 통해 상기 마스터로 전송한다.
본 발명의 실시 예에 따른 양자 난수 발생 장치는 각각이 직렬 클락 신호에 동기된 직렬 데이터를 처리할 수 있는 슬레이브들 각각의 어드레스가 동일함에 따라 발생하는 데이터 충돌을 방지할 수 있는 효과가 있다.
양자 난수 발생 장치를 포함하는 컴퓨팅 시스템은 상기 양자 난수 발생 장치로부터 쉽게 양자 난수를 제공받을 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1a는 본 발명의 실시 예에 따른 마스터와 슬레이브들을 포함하는 컴퓨팅 시스템의 블록도이다.
도 1b는 도 1a에 도시된 제3슬레이브에 대해 수행되는 라이트 작동과 리드 작동을 설명하기 위한 데이터 패킷의 실시 예이다.
도 2는 도 1a에 도시된 양자 난수 발생 칩셋과 어드레스 변환 제어 회로를 포함하는 양자 난수 발생 장치와 마스터를 포함하는 컴퓨팅 시스템의 블록도이다.
도 3은 도 2에 도시된 양자 난수 발생 장치의 일 실시 예를 나타내는 블록도이다.
도 4는 도 3 또는 도 7에 도시된 양자 난수 발생 장치의 작동을 설명하는 타이밍도이다.
도 5는 제1제어 신호가 제2레벨일 때 제1어드레스를 변환하는 어드레스 변환 회로의 작동을 설명하는 테이블이다.
도 6은 제1제어 신호가 제2레벨일 때 제2어드레스를 변환하는 어드레스 변환 회로의 작동을 설명하는 테이블이다.
도 7은 도 2에 도시된 양자 난수 발생 장치의 다른 실시 예를 나타내는 블록도이다.
도 8은 도 3 또는 도 7에 도시된 양자 난수 발생 장치의 작동을 설명하는 플로우차트이다.
도 1a는 본 발명의 실시 예에 따른 마스터와 슬레이브들을 포함하는 컴퓨팅 시스템의 블록도이다. 도 1a를 참조하면, 컴퓨팅 시스템(또는 임베디드 시스템 (embedded system); 100)은 마스터(이를 마스터 장치(master device)라고도 함. 110)와 복수 개의 슬레이브들(이를 슬레이브 장치들(slave devices)이라고도 함. 130, 150, 및 200)을 포함한다.
컴퓨팅 시스템(100)은 PC, 랩탑(laptop) 컴퓨터, 또는 서버, 등일 수 있다.
슬레이브들(130, 150, 및 200) 각각과 마스터(110)는 직렬 클락 신호(SCL)를 전송하는 직렬 클락 신호 전송선(101)과 직렬 데이터(SDA)를 전송하는 직렬 데이터 전송선(103)을 통해 서로 통신한다. 예를 들면, 시스템 관리 버스(system management bus(SMBus)) 인터페이스는 두 개의 전송선들(101과 103)로 구성되고, 직렬 데이터(SDA)는 직렬 클락 신호(SCL)에 동기된다.
마스터(110)는 각 슬레이브(130, 150, 및 200)와 직렬 클락 신호(SCL)에 동기된 직렬 데이터(SDA)를 주고받을 수 있다. 직렬 데이터(SDA)는 어드레스 (address) 또는 데이터를 포함하고, 패킷(packet)의 형태로 송신기(transmitter)로부터 수신기(receiver)로 전송된다.
각 슬레이브(130, 150, 및 200)는 각 슬레이브(130, 150, 및 200)를 유일무이(unique)하게 식별할 수 있는 고유한 어드레스에 의해 식별된다.
슬레이브들(130, 150, 및 200) 각각이 서로 다른 고유한 어드레스를 가지고 있을 때, 마스터(110)가 직렬 클락 신호(SCL)와 직렬 데이터(SDA)를 공유된 두 개의 전송선들(101과 103)을 통해 슬레이브들(130, 150, 및 200) 각각으로 전송하면, 슬레이브들(130, 150, 및 200) 사이에서는 데이터 충돌(data collision)이 발생하지 않는다.
데이터 충돌은 두 개 이상의 네트워크 도메인 장치들(예를 들면, 130, 150, 및 200) 각각으로부터 동시에 데이터(또는 데이터 패킷)가 전송될 때 발생한다.
예를 들면, 제1슬레이브(130)와 제2슬레이브(150) 중 어느 하나의 어드레스와 양자 난수 발생 장치로 사용되는 제3슬레이브(200)의 어드레스가 동일할 때, 데이터 충돌이 발생할 수 있다.
그러나, 본 발명에 따른 양자 난수 발생 장치(200)는, 슬레이브들(130, 150, 및 200) 중에서 두 개의 슬레이브들(예를 들면, 150과 200) 각각의 어드레스가 동일하더라도, 데이터 충돌을 방지하기 위해 마스터(110)로부터 출력된 어드레스를 다른 어드레스로 변환하는 주소 변환 작동을 수행한다.
도 1b는 도 1a에 도시된 제3슬레이브에 대해 수행되는 라이트 작동과 리드 작동을 설명하기 위한 데이터 패킷의 실시 예이다.
도 1a와 도 1b를 참조하면, 마스터(110)는 각 슬레이브(130, 150, 및 200)에 대해 라이트 작동(write operation)을 수행한 후 리드 작동(read operation)을 수행한다.
제3슬레이브(200)에 대한 라이트 작동과 리드 작동은 도 1a와 도 1b를 참조하여 예시적으로 설명된다. 제3슬레이브(200)에 대한 라이트 작동과 리드 작동을 수행하기 위해, 마스터(110)는 k-비트 슬레이브 어드레스(W12와 R12)를 생성한다고 가정한다. 여기서, k는 2이상의 자연수이고, k는 7이라고 가정한다.
제3슬레이브(200)에 대한 라이트 작동 시에, 마스터(110)는 시작 비트(W10)를 이용하여 시작 조건(즉, 직렬 클락 신호(SCL)가 하이 레벨인 상태에서 직렬 데이터(SDA)가 하이 레벨로부터 로우 레벨로 천이(transition)함)을 만든다.
시작 조건(W10)에 따라, 마스터(110)에 접속된 슬레이브들(130, 150, 및 200) 각각은 7-비트 슬레이브 어드레스(W12)를 수신할 준비를 한다.
마스터(110)는 7-비트 슬레이브 어드레스(W12)를 슬레이브들(130, 150, 및 200)로 전송하고, 로우 레벨을 갖는 라이트 비트(W14)를 슬레이브들(130, 150, 및 200)로 전송한다.
슬레이브들(130, 150, 및 200) 중에서 제3슬레이브(200)의 어드레스와 7-비트 슬레이브 어드레스(W12)만이 동일하다고 가정하면, 슬레이브들(130, 150, 및 200) 중에서 제3슬레이브(200)만이 로우 레벨을 갖는 슬레이브 ACK(acknowledge; W16)를 마스터(110)로 전송한다. 그러나, 슬레이브의 어드레스와 상기 슬레이브로 전송된 어드레스가 다를 때, 상기 슬레이브는 슬레이브 ACK를 마스터(110)로 전송하지 않는다.
그후, 마스터(110)가 m(m은 2이상의 자연수, m은 8이라고 가정한다)-비트 헤더 어드레스(W18)를 슬레이브들(130, 150, 및 200)로 전송하면, 슬레이브들(130, 150, 및 200) 중에서 제3슬레이브(200)만이 8-비트 헤더 어드레스(W18)를 수신하고, 8-비트 헤더 어드레스(W18)의 수신 성공을 나타내는 로우 레벨을 갖는 슬레이브 ACK(W20)를 마스터(110)로 전송한다.
그후 제3슬레이브(200)에 대한 리드 작동 시에, 마스터(110)는 시작 비트 (R10)를 이용하여 시작 조건을 만든다.
시작 조건에 따라, 마스터(110)에 접속된 슬레이브들(130, 150, 및 200) 각각은 7-비트 슬레이브 어드레스(R12)를 수신할 준비를 한다. 이때, W12와 R12는 동일하다고 가정한다.
마스터(110)는 7-비트 슬레이브 어드레스(R12)를 슬레이브들(130, 150, 및 200)로 전송하고, 하이 레벨을 갖는 리드 비트(R14)를 슬레이브들(130, 150, 및 200)로 전송한다.
슬레이브들(130, 150, 및 200) 중에서 제3슬레이브(200)의 어드레스와 7-비트 슬레이브 어드레스(R12)만이 동일하다고 가정하면, 슬레이브들(130, 150, 및 200) 중에서 제3슬레이브(200)만이 로우 레벨을 갖는 슬레이브 ACK(R16)를 마스터 (110)로 전송한다. 그러나, 슬레이브의 어드레스와 상기 슬레이브로 전송된 어드레스가 다를 때 상기 슬레이브는 슬레이브 ACK를 마스터(110)로 전송하지 않는다.
제3슬레이브(200)는 8-비트 헤더 어드레스(W18)에 관련(또는 매칭)된 8-비트 헤더 데이터(R18)를 마스터(110)로 전송한다. 제3슬레이브(200)로부터 8-비트 헤더 데이터(R18)를 수신한 마스터(110)는 하이 레벨을 갖는 NACK(not acknowledge; R20)를 생성하고, 정지 조건(R22, 즉, 직렬 클락 신호(SCL)가 하이 레벨인 상태에서 직렬 데이터(SDA)가 로우 레벨로부터 하이 레벨로 천이함)을 만들어 리드 작동을 종료한다.
제3슬레이브(200)에 대한 라이트 작동과 리드 작동에 사용되는 프로토콜 (protocol)과 제2슬레이브(150)에 대한 라이트 작동과 리드 작동에 사용되는 프로토콜은 서로 다르다고 가정한다. 도 1b를 참조하여 설명한 작동과 유사하게, 7-비트 슬레이브 어드레스에 의해 식별되는 제2슬레이브(150)에 대한 라이트 작동에 따라 제2슬레이브(150)에는 헤더 데이터(HDATA)와 동일하지 않은 제3헤더 데이터가 저장된다고 가정한다.
도 2는 도 1a에 도시된 양자 난수 발생 칩셋과 어드레스 변환 제어 회로를 포함하는 양자 난수 발생 장치와 마스터를 포함하는 컴퓨팅 시스템의 블록도이다.
본 발명에서 각 슬레이브(130, 150, 및 200)에 대한 8-비트 헤더 데이터는 고정된(또는 고유한) 비트 값들은 가지므로, 장치 드라이버(114)는 각 슬레이브 (130, 150, 및 200)에 대한 상기 8-비트 헤더 데이터만을 확인하여 각 슬레이브 (130, 150, 및 200)가 정상적으로 마스터(110)에 장착되어 있는지를 확인한다. 그후, 마스터(110)는 양자 난수 발생 장치 칩셋(210)으로부터 양자 난수를 수신하여 사용할 수 있다.
도 1a와 도 2를 참조하면, 마스터(110)는 메인 보드(또는 마더보드; 112), CPU(또는 프로세서; 113), SMBus 인터페이스(116), 및 복수 개의 슬롯들(118, 118b, 및 118c)을 포함한다.
CPU(113), SMBus 인터페이스(116), 및 슬롯들(118, 118b, 및 118c)은 메인 보드(112)에 장착된다.
예를 들면, 제1슬레이브(130)의 제1커넥터(connector; 131)는 제1슬롯(118b)에 삽입되고, 제2슬레이브(150)의 제2커넥터(151)는 제2슬롯(118c)에 삽입되고, 제3슬레이브(200)의 커넥터(202)는 슬롯(118)에 삽입된다.
CPU(113)는 제1어드레스(ADD1), 제2어드레스(ADD2), 및 헤더 데이터(HDATA)를 저장(또는 포함)하는 장치 드라이버(114)를 포함한다. 여기서, 헤더 데이터 (HDATA)는 제1어드레스(ADD1)에 관련(또는 매칭)된 헤더 데이터라고 가정한다.
SMBus 인터페이스(116)는 CPU(113)와 슬롯들(118, 118b, 및 118c)을 연결하는 인터페이스이다.
각 슬롯(118, 118b, 및 118c)은 확장 카드(expansion card)를 삽입할 수 있는 메인 보드(112)의 소켓(socket)으로 확장 슬롯(expansion slot)이라고도 불린다.
양자 난수 발생 장치(200)에 전기적으로 연결되는 슬롯(118)은 mPCIe(mini PCI-Express) 커넥터(202)의 핀들, 또는 M.2 커넥터(202)의 핀들과 연결되는 구조를 갖는다. M.2는 차세대 폼팩터(Next Generation Form Factor(NGFF))라고도 알려져 있다.
M.2는 mSATA(mini SATA) 표준을 대체하며, PCI 익스프레스(Peripheral Component Interconnect Express(PCIe or PCI-E)) 미니 카드의 물리적인 카드 레이아웃(card layout)과 커넥터를 사용한다.
양자 난수 발생 장치(200)의 커넥터(202)는 슬롯(118)에 삽입된다. 실시 예들에 따라, 양자 난수 발생 장치(200)는 mPCIe 모듈(이를 'mPCIe 폼 팩터(form factor)'라고도 한다.) 또는 M.2 모듈(이를 'M.2 폼 팩터'라고도 한다.)일 수 있다.
슬롯(118)이 mPCIe(mini PCI-Express)를 위한 슬롯일 때 커넥터(202)는 mPCIe 커넥터이고, 슬롯(118)이 M.2를 위한 슬롯일 때 커넥터(202)는 M.2 커넥터이다.
양자 난수 발생 장치 칩셋(210)은 임베디드 시스템에서 사용하는 I2C 버스 인터페이스를 사용하므로, PC와 같은 상용 시스템에는 사용될 수 없다. 또한, PC와 같은 상용 시스템에는 I2C 버스 인터페이스를 사용하는 양자 난수 발생 장치(200)가 삽입되는 전용 슬롯이 별도로 없었다.
따라서, 마스터(110)의 슬롯(118)은 I2C 버스 인터페이스를 사용하는 양자 난수 발생 장치(200)가 삽입되는 전용 슬롯의 역할을 수행한다.
양자 난수 발생 장치(200)는 커넥터(202), SMBus 인터페이스(204), 어드레스 변환 제어 회로(230), I2C 버스 인터페이스(208), 및 양자 난수 발생 장치 칩셋 (210)을 포함한다.
예를 들면, 마스터(110)의 슬롯(118)에 삽입될 수 있는 구조를 갖는 커넥터 (202)는 SATA 사양(Serial Advanced Technology Attachment(SATA) specification) 또는 PCIe 사양(Peripheral Component Interconnect Express(PCIe) specification)을 준수한다. 예를 들면, 커넥터(202)는 mPCIe 사양 또는 M.2 사양을 준수한다.
커넥터(202)는 제1핀(P1)과 제2핀(P2)을 포함하는 복수 개의 핀들을 포함한다. 예를 들면, 제1핀(P1)은 직렬 클락 신호(SCL)의 전송을 위한 핀(pin)이고, 제2핀(P2)은 직렬 데이터(SDA)의 전송을 위한 핀이다.
SMBus 인터페이스(204)는 커넥터(202)와 어드레스 변환 제어 회로(230) 사이를 연결하는 인터페이스이다.
양자 난수를 제공하기 위한 통신 인터페이스로 사용되는 I2C 버스 인터페이스(208)는 어드레스 변환 제어 회로(230)와 양자 난수 발생 장치 칩셋(210) 사이를 연결하는 인터페이스이다. 양자 난수 발생 장치 칩셋(210)은 양자 난수를 생성하는 일군(一群)의 집적 회로 칩을 의미한다.
양자 난수 발생 장치 칩셋(210)에 의해 생성되는 양자 난수(Quantum Random Number)는 양자역학적 성질을 이용해 패턴 분석 자체가 불가능한 무작위 숫자이며, 연속된 숫자들 중에서 앞뒤 숫자들의 상호 연관성이 없기 때문에 외부 위협이나 해커의 공격으로부터 근본적으로 보호된다.
수학적 알고리즘으로 생성된 유사 난수(pseudorandom number)는 데이터 패턴을 읽고 연산하는 컴퓨터를 통하여 암호 체계가 무너질 수 있지만, 양자 난수 발생 장치 칩셋(210)에 의해 생성된 양자 난수는 패턴 분석 연산 컴퓨팅으로도 풀 수 없는 불규칙성을 갖고 있기 때문에 보안성이 뛰어나다.
도 3은 도 2에 도시된 양자 난수 발생 장치의 일 실시 예를 나타내는 블록도이다.
도 3을 참조하면, 양자 난수 발생 장치(200)는 양자 난수 발생 장치 칩셋 (210)과 어드레스 변환 제어 회로(230)를 포함한다.
어드레스 변환 제어 회로(230)는 어드레스 변환 회로(240), 제1스위치 회로 (SW1), 제2스위치 회로(SW2), 제1전압 발생 장치(이를 '제1전압 발생 회로'라고도 한다. 271), 제2전압 발생 장치(이를 '제2전압 발생 회로'라고도 한다. 281), 및 복수 개의 풀업 저항들(Rp1, Rp2, Rp3, 및 Rp4)을 포함한다.
어드레스 변환 회로(240)는, 제1제어 신호(CTRL1)의 레벨에 따라, 직렬 클락 신호(SCL)에 동기된 직렬 데이터(SDA)에 포함된 어드레스를 양자 난수 발생 장치 칩셋(210)으로 바이패스(bypass)할지 또는 상기 어드레스를 다른 어드레스로 변환할지를 결정하고, 바이패스된 어드레스 또는 변환된 다른 어드레스를 양자 난수 발생 장치 칩셋(210)으로 전송한다.
어드레스 변환 회로(240)는 제1제어 신호 생성 회로(241), 시작 비트 체커 (243), 카운터(245), 비교기(247), 멀티플렉서(multiplexer. 249), 제1AND 게이트 (251), 데이터 저장 장치로 사용되는 레지스터(register; 253), 시프트 레지스터 (shift register; 255), XOR(exclusive OR) 게이트(257), 인버터(259), 제2AND 게이트(261), 및 오픈-드레인(open-drain) 스위치 회로(263)를 포함한다.
실시 예에 따라, 오픈-드레인 스위치 회로(263)는 NMOS 트랜지스터로 구현될 수 있고, 인버터(inverter)의 기능을 수행할 수 있다.
비록, 도 3에서는 제1제어 신호 생성 회로(241)가 어드레스 변환 제어 회로 (230)에 포함되는 것으로 도시되고 설명되나, 실시 예들에 따라 제1제어 신호 생성 회로(241)는 어드레스 변환 제어 회로(230)의 외부에 구현(또는 설치)될 수 있다.
제1제어 신호 생성 회로(241)는 제1레벨을 갖는 제1제어 신호(CTL1) 또는 제2레벨을 갖는 제1제어 신호(CTL1)를 생성한다. 제1제어 신호 생성 회로(241)는 수동 전기 스위치(예를 들면, Dual-inline package(DIP) 스위치, 또는 토글(toggle) 스위치, 등)일 수 있다. 제1레벨은 로우 레벨(low level)을 의미하고 제2레벨은 하이 레벨(high level)을 의미하나, 실시 예들에 따라 그 반대일 수 있다.
제1제어 신호(CTL1)가 로우 레벨일 때 어드레스 변환 회로(240)는 어드레스 바이패스 모드(또는 작동)를 수행하고, 제1제어 신호(CTL1)가 하이 레벨일 때 어드레스 변환 회로(240)는 어드레스 변환 모드(또는 작동)를 수행한다.
도 4는 도 3 또는 도 7에 도시된 양자 난수 발생 장치의 작동을 설명하는 타이밍도이고, 도 8은 도 3 또는 도 7에 도시된 양자 난수 발생 장치의 작동을 설명하는 플로우차트이다.
도 1a 내지 도 4를 참조하면, 제2슬레이브(150)에는 제1어드레스(ADD1=0x37)에 관련(또는 매칭)된 제3헤더 데이터가 이미 저장된다고 가정한다.
도 1a를 참조하면, 제1슬레이브(130)의 어드레스와 제2슬레이브(150)의 어드레스(0x37)는 서로 다르고, 제2슬레이브(150)의 어드레스(0x37)와 양자 난수 발생 장치(200 또는 양자 난수 발생 장치 칩셋(210))의 어드레스(0x37)는 동일하고, 장치 드라이버(114)에는 제1어드레스(ADD1=0x37), 제2어드레스(ADD2=0x4F), 및 제1어드레스(ADD1=0x37)에 관련(또는 매칭)된 헤더 데이터(HDATA)가 저장되어 있다고 가정한다.
도 1a 내지 도 4, 및 도 8을 참조하면, 양자 난수 발생 장치(200)의 커넥터 (202)가 마스터(110)의 슬롯(118)에 삽입되고, 각 슬레이브(130과 150)가 마스터 (110)의 각 슬롯(118b와 118c)에 삽입되고, 마스터(110)와 각 슬레이브(130, 150, 및 200)로 전압이 공급되면, 마스터(110)와 각 슬레이브(130, 150, 및 200)는 파워 온(power on) 된다(S112).
파워 온 후에, 장치 드라이버(114)는 직렬 클락 신호(SCL)를 이용하여 제1어드레스(0x37)를 직렬 데이터 전송선(103)을 통해 각 슬레이브(130, 150, 및 200)로 전송(또는 자동으로 전송)한다.
제1전압 발생 장치(271)는 제1전압(예를 들면, SMBus 전압; V1)을 생성하고, 제1전압(V1)을 제1풀업 저항(Rp1)을 통해 SMbus 제2전송선(204_2)으로 공급하고 제2풀업 저항(Rp2)을 통해 SMbus 제1전송선(204_1)으로 공급한다. SMBus 인터페이스 (204)는 SMbus 전송선들(204_1과 204_2)을 포함한다.
제2전압 발생 장치(281)는 제2전압(예를 들면, I2C 버스 전압; V2)을 생성하고, 제2전압(V2)을 제1스위치 회로(SW1)로 공급하고, 제3풀업 저항(Rp3)을 통해 I2C 제2전송선(208_2)로 공급하고 제4풀업 저항(Rp4)을 통해 I2C 제1전송선 (208_1)으로 공급한다. I2C 버스 인터페이스(208)는 I2C 전송선들(208_1과 208_2)을 포함한다.
실시 예들에 따라, 제1전압(V1, 예를 들면, 2.1V 이상)은 제2전압(V2, 예를 들면, 1.8V)보다 높다.
제1스위치 회로(SW1)는 제1스위치(SW1a)와 제2스위치(SW1b)을 포함하고, 제1스위치(SW1a)와 제2스위치(SW1b)는 제2전압(V2)에 응답하여 SMbus 전송선들(204_1과 204_2) 각각과 접속 전송선들(206_1과 206_2) 각각을 연결하는 기능을 수행한다.
SMBus 인터페이스의 전압(V1)은 최소 2.1V이고, I2C 버스 인터페이스의 전압 (V2)은 1.8V이므로, 제1스위치 회로(SW1)는 SMBus 인터페이스의 전압(V1)과 I2C 버스 인터페이스의 전압(V2)을 정합하는 기능을 수행한다.
실시 예들에 따라, 각 스위치(SW1a과 SW1b)는 NMOS 트랜지스터일 수 있고, 제2전압(V2)은 NMOS 트랜지스터들(SW1a과 SW1b) 각각의 게이트로 공급된다. 따라서, 각 NMOS 트랜지스터(SW1a과 SW1b)는 제2전압(V2)에 응답하여 턴-온된다.
제2스위치 회로(SW2)는 제3스위치(SW2a)와 제4스위치(SW2b)를 포함하고, 제3스위치(SW2a)와 제4스위치(SW2b) 각각은 제3제어 신호(이를 '제2스위치 회로 제어 신호'라고도 한다. CTL3)에 따라 접속 전송선들(206_1과 206_2) 각각과 I2C 전송선들(208_1과 208_2) 각각을 연결하는 기능을 수행한다.
실시 예들에 따라, 각 스위치(SW2a과 SW2b)는 PMOS 트랜지스터일 수 있고, 제3제어 신호(CTL3)는 PMOS 트랜지스터들(SW2a과 SW2b) 각각의 게이트로 공급된다.
제1제어 신호 생성 회로(241)는 로우 레벨을 갖는 제1제어 신호(CTL1)를 생성한다. 예를 들면, DIP 스위치(241)는 오프(off) 상태로 놓인다(S114).
제1스위치 회로(SW1)는 제2전압(V2)에 응답하여 온(on)이 된다(S114).
제1제어 신호(CTL1)가 로우 레벨일 때, 제1AND 게이트(251)는 로우 레벨을 갖는 제3제어 신호(CTL3)를 제2스위치 회로(SW2)로 출력하므로, 장치 드라이버 (114)로부터 출력되고 제1어드레스(ADD1=0x37)를 포함하는 직렬 데이터(SDA)는 구성들(103, P2, 204_2, SW1b, 260_2, SW2b, 및 280_2)를 통해 양자 난수 발생 장치 칩셋(210)으로 전송되고, 직렬 클락 신호(SCL)는 구성들(101, P1, 204_1, SW1a, 260_1, SW2a, 및 280_1)를 통해 양자 난수 발생 장치 칩셋(210)으로 전송된다 (S116).
이때, 직렬 클락 신호(SCL)에 동기된 제1어드레스(ADD1=0x37)가 양자 난수 발생 장치 칩셋(210)으로 전송될 때, 직렬 클락 신호(SCL)에 동기된 제1어드레스 (ADD1=0x37)는 각 슬레이브(130과 150)로도 전송된다.
실시 예들에 따라, 제1AND 게이트(251)가 로우 레벨을 갖는 제3제어 신호 (CTL3)를 제2AND 게이트(261)의 입력 단자들 중에서 어느 하나로 출력하므로, 제2AND 게이트(261)는 로우 레벨을 갖는 제3출력 신호(OUT3)를 출력한다.
드레인 단자가 I2C 제2전송선(208_2)에 연결된 오픈 드레인 NMOS 트랜지스터 (263)는 제3풀업 저항(Rp3)을 사용하여 I2C 제2전송선(208_2)을 하이 레벨 또는 로우 레벨로 변환시킨다.
예를 들면, 오픈 드레인 NMOS 트랜지스터(263)의 게이트로 순차적으로 입력되는 제3출력 신호(OUT3)의 레벨이 로우(0000000)일 때, I2C 제2전송선(208_2)은 제1어드레스(ADD1=0x37)를 양자 난수 발생 장치 칩셋(210)으로 전송한다.
양자 난수 발생 장치 칩셋(210)은 자신의 어드레스(0x37)와 동일한 제1어드레스(ADD1=0x37)가 I2C 제2전송선(208_2)을 통해 수신되므로, 헤더 데이터(HDATA)와 동일한 제1데이터(DATA1)를 출력한다.
직렬 클락 신호(SCL)에 따라 제1데이터(DATA1)는 구성들(208_2, SW2b, 206_2, SW1b, 204_2, P2, 및 103)을 통해 마스터(110)로 전송된다(S118).
이때, 제1슬레이브(130)의 어드레스와 제1슬레이브(130)로 전송된 제1어드레스(ADD1=0x37)가 서로 동일하지 않으므로, 제1슬레이브(130)는 응답(또는 반응)하지 않는다.
그러나, 제2슬레이브(150)의 어드레스(0x37)와 제2슬레이브(150)로 전송된 제1어드레스(ADD1=0x37)가 동일하므로, 제2슬레이브(150)는 제2슬레이브(150)의 프로토콜에 맞는 제3헤더 데이터를 직렬 데이터 전송선(103)으로 전송한다.
양자 난수 발생 장치 칩셋(210)은 헤더 데이터(HDATA)와 동일한 제1데이터 (DATA1)를 직렬 데이터 전송선(103)으로 전송하고, 이와 동시에 또는 병렬적으로 제2슬레이브(150)는 헤더 데이터(HDATA)와 동일하지 않은 제3헤더 데이터를 직렬 데이터 전송선(103)으로 전송하므로, 제1데이터(DATA1)와 상기 제3헤더 데이터는 충돌한다.
이에 따라, 양자 난수 발생 장치 칩셋(210)으로부터 출력된 제1데이터 (DATA1)는 장치 드라이버(114)로 전송되지 않거나, 또는 데이터 충돌에 따라 제1데이터(DATA1)와 동일하지 않은 데이터가 장치 드라이버(114)로 전송된다.
결과적으로, 장치 드라이버(114)가 수신한 데이터(이를 '수신 데이터'라고 한다.)와 헤더 데이터(HDATA)는 서로 다르다.
장치 드라이버(114)는 수신 데이터가 헤더 데이터(HDATA)와 동일한지를 판단한다(S120).
수신 데이터가 헤더 데이터(HDATA)와 동일할 때 장치 드라이버(114)는 수신 데이터를 정상적인 데이터로 판단하거나 양자 난수 발생 장치(200)의 상태를 정상 상태로 판단하고, 상기 수신 데이터가 헤더 데이터(HDATA)와 동일하지 않을 때 장치 드라이버(114)는 상기 수신 데이터를 비정상적인 데이터로 판단하거나 양자 난수 발생 장치(200)의 상태를 비정상 상태로 판단한다(S120).
수신 데이터가 비정상적인 데이터로 판단되거나 양자 난수 발생 장치(200)의 상태가 비정상 상태로 판단될 때(S120의 YES), 장치 드라이버(114)는 직렬 클락 신호(SCL)를 이용하여 제2어드레스(ADD2=0x4F)를 직렬 데이터 전송선(103)을 통해 각 슬레이브(130, 150, 및 200)로 전송(또는 자동으로 전송)한다(S122).
그러나, 수신 데이터가 정상적인 데이터일 때(S120의 NO), 장치 드라이버 (114)는 양자 난수를 획득하기 위해 제1어드레스(ADD1=0x37)를 직렬 데이터 전송선 (103)을 통해 각 슬레이브(130, 150, 및 200)로 전송한다(S120_1). 장치 드라이버 (114)는 오로지 양자 난수 발생 장치(200)로부터 출력된 양자 난수를 포함하는 직렬 데이터를 수신하고, 상기 직렬 데이터에 포함된 상기 양자 난수를 이용하여 데이터를 암호화할 수 있다(S120_2).
제1제어 신호(CTL1)가 로우 레벨일 때 제2어드레스(ADD2=0x4F)를 포함하는 직렬 데이터(SDA)는 구성들(103, P2, 204_2, SW1b, 260_2, SW2b, 및 280_2)을 통해 양자 난수 발생 장치 칩셋(210)으로 전송되고, 직렬 클락 신호(SCL)는 구성들(101, P1, 204_1, SW1a, 260_1, SW2a, 및 280_1)를 통해 양자 난수 발생 장치 칩셋(210)으로 전송된다(S122).
제1AND 게이트(251)가 로우 레벨을 갖는 제3제어 신호(CTL3)를 제2AND 게이트(261)로 출력하므로, 제2AND 게이트(261)는 로우 레벨을 갖는 제3출력 신호 (OUT3)를 출력한다.
오픈 드레인 NMOS 트랜지스터(263)의 게이트로 순차적으로 입력되는 제3출력 신호(OUT3)의 레벨이 로우(0000000)이므로, I2C 제2전송선(208_2)은 제2어드레스 (ADD2=0x4F)를 양자 난수 발생 장치 칩셋(210)으로 전송한다.
양자 난수 발생 장치 칩셋(210)의 어드레스(0x37)와 I2C 제2전송선(208_2)을 통해 수신된 제2어드레스(ADD2=0x4F)가 서로 다르므로, 양자 난수 발생 장치 칩셋 (210)은 작동하지 않는다(S124).
제2슬레이브(150)의 어드레스(0x37)와 제2슬레이브(150)로 전송된 제2어드레스(ADD2=0x4F)가 서로 다르므로, 제2슬레이브(150)는 제2어드레스(ADD2=0x4F)에 응답하지 않는다. 예를 들면, 각 슬레이브(130, 150, 및 200)의 어드레스와 제2어드레스(ADD2=0x4F)가 일치하지 않을 때, 각 슬레이브(130, 150, 및 200)는 슬레이브 ACK를 발생하지 않는다(S124).
마스터(110)의 장치 드라이버(114)가 양자 난수 발생 장치(200)로부터 슬레이브 ACK(R16)를 받지 못했기 때문에(S124), 장치 드라이버(114)는 양자 난수 발생 장치 칩셋(210)이 비정상 상태라고 판단한다(S126).
단계(S126) 후에, 마스터(110)와 각 슬레이브(130, 150, 및 200)의 파워(또는 작동 전압)는 자동으로 오프(off)되거나, 컴퓨팅 시스템(100)의 사용자는 수동으로 마스터(110)와 각 슬레이브(130, 150, 및 200)의 파워를 오프한다(S128).
컴퓨팅 시스템(100)의 사용자는 하이 레벨을 갖는 제1제어 신호(CTL1)가 생성되도록 제1제어 신호 생성 회로(241)를 조작한다(S130). 예를 들면, 사용자는 DIP 스위치(241)를 온(on) 상태로 놓는다(S130).
그후, 마스터(110)와 각 슬레이브(130, 150, 및 200)의 파워가 컴퓨팅 시스템(100)의 사용자에 의해 온 된다(S132).
도 5는 제1제어 신호가 제2레벨일 때 제1어드레스를 변환하는 어드레스 변환 회로의 작동을 설명하는 테이블이다.
도 1a 내지 도 5, 및 도 8을 참조하면, 제1제어 신호 생성 회로(214)는 하이 레벨을 갖는 제1제어 신호(CTL1)를 출력하고, 제1스위치 회로(SW1)는 제2전압(V2)에 응답하여 온 된다(S134).
파워 온 후(S132), 장치 드라이버(114)는 직렬 클락 신호(SCL)에 동기된 제1어드레스(ADD1=0x37)를 포함하는 직렬 데이터(SDA)를 각 슬레이브(130, 150, 및 200)로 전송한다(S136).
시작 비트 체커(243)는 직렬 클락 신호(SCL)가 하이 레벨일 때 직렬 데이터 (SDA)의 하강 에지falling edge)를 검출하고, 하이 레벨을 갖는 제2제어 신호 (CTL2)를 생성한다. 시작 비트 체커(243)는 하이 레벨을 갖는 인에이블 신호(CTL2)를 생성하는 카운터 인에이블 신호 생성기의 기능을 수행한다.
하이 레벨을 갖는 제2제어 신호(CTL2)에 따라 인에이블된 카운터(245)는 토글링(또는 오실레이션(oscillation))하는 직렬 클락 신호(SCL)의 상승 에지를 카운트하여 카운트 값(CNT)을 출력한다. 하이 레벨을 갖는 제2제어 신호(CTL2)는 카운트 값(CNT)이 9가 될 때까지 하이 레벨을 유지할 수 있다.
도 4에 도시된 바와 같이, 카운트 값(CNT)이 기준 카운트 값(REF, 예를 들면, REF는 7)과 같아질 때까지, 비교기(247)는 하이 레벨을 갖는 비교 신호(COMP)를 출력하고, 카운트 값(CNT)이 기준 카운트 값(REF)보다 크면 비교기(247)는 로우 레벨을 갖는 비교 신호(COMP)를 출력한다.
제1AND 게이트(251)는 하이 레벨을 갖는 제1제어 신호(CTL1)와 하이 레벨을 갖는 비교 신호(COMP)를 논리곱하여 하이 레벨을 갖는 제3제어 신호(CTL3)를 생성한다.
제2스위치 회로(SW2)에 포함된 PMOS 트랜지스터들(SW2a와 SW2b) 각각은 하이 레벨을 갖는 제3제어 신호(CTL3)에 응답하여 턴-오프 된다. 따라서, 제1어드레스 (ADD1=0x37)은 양자 난수 발생 장치 칩셋(210)으로 전송(또는 바이패스)되지 않는다.
멀티플렉서(249)는, 하이 레벨을 갖는 비교 신호(COMP)에 따라, 제1입력 단자로 입력된 직렬 클락 신호(SCL)를 시프트 레지스터(255)로 전송한다.
시프트 레지스터(255)는, 멀티플렉서(249)로부터 출력된 직렬 클락 신호 (SCL)에 응답하여, 레지스터(253)로부터 출력된 변환 설정 어드레스(이를 '변환 설정 값'이라고 한다. CREF=0x78)을 XOR 게이트(257)로 1-비트씩 출력한다.
XOR 게이트(257)는 제1어드레스(ADD1=0x37)와 변환 설정 어드레스 (CREF=0x78=1111000)을 비트 단위(bitwise)로 XOR 연산하고, XOR 연산의 결과에 해당하는 제1출력 신호(OUT1=0x4F)를 비트 단위로 인버터(259)로 출력한다.
인버터(259)는 제1출력 신호(OUT1=0x4F)를 인버팅(inverting)하여 제2출력 신호(OUT2=0x30)를 비트 단위로 제2AND 게이트(261)로 출력한다.
제2AND 게이트(261)는 하이 레벨을 갖는 제3제어 신호(CTL3)와 제2출력 신호 (OUT2=0x30)를 비트 단위로 논리곱하고, 제3출력 신호(OUT3=0x30)를 오픈 드레인 NMOS 트래지스터(263)로 비트 단위로 출력한다.
오픈 드레인 NMOS 트래지스터(263)는, 게이트로 순차적으로 입력되는 제3출력 신호(OUT3=0x30)에 응답하여, 제4출력 신호(OUT4=0x4F)를 I2C 제2전송선(208_2)을 통해 양자 난수 발생 장치 칩셋(210)으로 전송한다.
제4출력 신호(OUT4=0x4F)가 양자 난수 발생 장치 칩셋(210)으로 전송된 후, 즉 카운트 값(CNT=8)이 기준 카운트 값(REF=7)보다 클 때, 비교기(246)는 로우 레벨을 갖는 비교 신호(COMP)를 출력한다.
멀티플렉서(249)는, 로우 레벨을 갖는 비교 신호(COMP)에 따라, 제2입력 단자로 입력된 접지 전압(VSS)에 해당하는 로우 레벨을 시프트 레지스터(255)로 전송하므로, 시프트 레지스터(255)는 작동을 멈춘다.
제1AND 게이트(251)는 로우 레벨을 갖는 비교 신호(COMP)에 따라 로우 레벨을 갖는 제3제어 신호(CTL3)를 생성한다.
제2스위치 회로(SW2)에 포함된 PMOS 트랜지스터들(SW2a와 SW2b) 각각은 로우 레벨을 갖는 제3제어 신호(CTL3)에 응답하여 턴-온되고, 제2AND 게이트(261)는 로우 레벨을 갖는 제3출력 신호(OUT3)를 오픈 드레인 NMOS 트랜지스터(263)의 게이트로 출력한다.
양자 난수 발생 장치 칩셋(210)의 어드레스(0x37)와 양자 난수 발생 장치 칩셋(210)으로 전송된 어드레스(0x4F)가 서로 다르므로, 양자 난수 발생 장치 칩셋 (210)은 작동하지 않는다(S138). 이에 따라, 양자 난수 발생 장치 칩셋(210)은 슬레이브 ACK(R16)을 마스터(110)로 전송하지 않는다(S138).
또한, 제2슬레이브(150)의 어드레스(0x37)와 제2슬레이브(150)로 전송된 어드레스(0x4F)가 서로 다르므로, 제2슬레이브(150)는 작동하지 않는다(S138). 이에 따라, 제2슬레이브(150)는 슬레이브 ACK를 마스터(110)로 전송하지 않는다(S138).
CPU(113)의 장치 드라이버(114)가 양자 난수 발생 장치(200)로부터 슬레이브 ACK(R16)를 받지 못했기 때문에, 장치 드라이버(114)는 양자 난수 발생 장치(200)의 상태를 비정상 상태로 판단한다(S140).
도 1a 내지 도 6, 및 도 8을 참조하면, 양자 난수 발생 장치(200)의 상태가 비정상 상태로 판단되면(S140), 장치 드라이버(114)는 비로소 제2어드레스 (ADD2=0x4F)를 포함하는 직렬 데이터(SDA)를 각 슬레이브(130, 150, 및 200)로 전송(또는 자동으로 전송)한다(S142).
시작 비트 체커(243)로부터 출력된 제2제어 신호(CTL2)에 따라 인에이블된 카운터(245)는 직렬 클락 신호(SCL)의 상승 에지를 카운트하여 카운트 값(CNT)을 출력한다.
카운트 값(CNT)이 기준 카운트 값(REF)과 같아질 때까지 비교기(247)는 하이 레벨을 갖는 비교 신호(COMP)를 출력하고, 카운트 값(CNT)이 기준 카운트 값(REF)보다 크면 비교기(247)는 로우 레벨을 갖는 비교 신호(COMP)를 출력한다.
제1AND 게이트(251)는 하이 레벨을 갇는 제1제어 신호(CTL1)와 하이 레벨을 갖는 비교 신호(COMP)를 논리곱하여 하이 레벨을 갖는 제3제어 신호(CTL3)를 생성한다.
제2스위치 회로(SW2)에 포함된 PMOS 트랜지스터들(SW2a와 SW2b) 각각은 하이 레벨을 갖는 제3제어 신호(CTL3)에 응답하여 턴-오프된다.
시프트 레지스터(255)는, 멀티플렉서(249)로부터 출력된 직렬 클락 신호 (SCL)에 응답하여, 레지스터(253)로부터 출력된 변환 설정 어드레스(CREF=0x78)을 XOR 게이트(257)로 1-비트씩 출력한다.
XOR 게이트(257)는 제2어드레스(ADD2=0x4F)와 변환 설정 어드레스 (CREF=0x78)을 비트 단위로 XOR 연산하고, XOR 연산의 결과에 해당하는 제1출력 신호(OUT1=0x37)를 비트 단위로 인버터(259)로 출력한다.
인버터(259)는 제1출력 신호(OUT1=0x37)를 인버팅하여 제2출력 신호 (OUT2=0x48)를 비트 단위로 제2AND 게이트(261)로 출력한다.
제2AND 게이트(261)는 하이 레벨을 갖는 제3제어 신호(CTL3)와 제2출력 신호 (OUT2=0x48)를 비트 단위로 논리곱하고, 제3출력 신호(OUT3=0x48)를 오픈 드레인 NMOS 트래지스터(263)로 비트 단위로 출력한다.
오픈 드레인 NMOS 트래지스터(263)는, 게이트로 순차적으로 입력되는 제3출력 신호(OUT3=0x48)에 응답하여, 제4출력 신호(OUT4=0x37)를 I2C 제2전송선(208_2)을 통해 양자 난수 발생 장치 칩셋(210)으로 전송한다.
제4출력 신호(OUT4=0x37)가 양자 난수 발생 장치 칩셋(210)으로 전송된 후, 즉 카운트 값(CNT=8)은 기준 카운트 값(REF=7)보다 크므로, 비교기(246)는 로우 레벨을 갖는 비교 신호(COMP)를 출력한다.
비교 신호(COMP)가 로우 레벨일 때, 제1AND 게이트(251)는 로우 레벨을 갖는 제3제어 신호(CTL3)를 생성한다.
제2스위치 회로(SW2)에 포함된 PMOS 트랜지스터들(SW2a와 SW2b) 각각은 로우 레벨을 갖는 제3제어 신호(CTL3)에 응답하여 턴-온되고, 제2AND 게이트(261)는 로우 레벨을 갖는 제3제어 신호(CTL3)에 따라 로우 레벨을 갖는 제3출력 신호(OUT3)를 오픈 드레인 NMOS 트랜지스터(263)의 게이트로 출력한다.
양자 난수 발생 장치 칩셋(210)의 어드레스(0x37)와 양자 난수 발생 장치 칩셋(210)으로 전송된 어드레스(0x37)가 동일하므로, 양자 난수 발생 장치 칩셋(210)은 슬레이브 ACK(R16)를 마스터(110)로 전송하고, 헤더 데이터(HDATA)와 동일한 제2데이터(DATA2)를 출력한다.
직렬 클락 신호(SCL)에 동기된 제2데이터(DATA2)는 구성들(208_2, SW2b, 206_2, SW1b, 204-2, P2, 및 103)을 통해 마스터(110)의 CPU(114)로 전송된다 (S144).
CPU(113)의 장치 드라이버(114)는 슬레이브 ACK(R16)를 수신하고, 헤더 데이터(HDATA)와 동일한 제2데이터(DATA2)를 수신하고(S144), 제2데이터(DATA2)와 헤더 데이터(HDATA)를 비교한다.
제2데이터(DATA2)와 헤더 데이터(HDATA)가 동일하므로, 장치 드라이버(114)는 양자 난수 발생 장치 칩셋(210)으로부터 전송된 제2데이터(DATA2)를 정상적인 데이터로 판단한다(S146). 즉, 장치 드라이버(114)는 양자 난수 발생 장치(200)가 마스터(110)에 정상적으로 연결되어 있다고 판단한다(S146).
제2슬레이브(150)의 어드레스(0x37)와 양자 난수 발생 장치(200)의 어드레스 (0x37)가 동일하더라도, 장치 드라이버(114)는 제2어드레스(ADD2=0x4F)를 제2슬레이브(150)와 양자 난수 발생 장치(200)로 전송한다.
제2슬레이브(150)의 어드레스(0x37)와 제2슬레이브(150)로 전송된 제2어드레스(ADD2=0x4F)가 서로 다르므로, 제2슬레이브(150)는 제2어드레스(ADD2=0x4F)에 응답하여 작동하지 않는다. 즉, 제2슬레이브(150)는 슬레이브 ACK를 마스터(110)로 전송하지 않는다.
그러나, 양자 난수 발생 장치(200) 또는 양자 난수 발생 장치 칩셋(210)의 어드레스(0x37)와 다른 제2어드레스(ADD2=0x4F)가 양자 난수 발생 장치(200)로 전송되더라도, 양자 난수 발생 장치(200)의 어드레스 변환 제어 회로(230)는 제2어드레스(ADD2=0x4F)를 제1어드레스(ADD1=0x37)로 변환하므로, 제1어드레스(ADD1=0x37)에 의해 식별되는 양자 난수 발생 장치 칩셋(210)은 제1어드레스(ADD1=0x37)에 응답하여 헤더 데이터(HDATA)와 동일한 제2데이터(DATA2)를 마스터(110)로 전송한다.
양자 난수 발생 장치(200)의 상태가 정상 상태일 때(S146), 제2슬레이브 (150)의 어드레스(0x37)와 양자 난수 발생 장치(200)의 어드레스(0x37)가 동일할지라도, 마스터(110)는 제1어드레스(ADD1=0x37) 대신에 제2어드레스(ADD2=0x4F)를 포함하는 직렬 데이터(SDA)를 제2슬레이브(150)와 양자 난수 발생 장치(200)로 출력하고(S200), 양자 난수 발생 장치(200)로부터 출력된 양자 난수를 포함하는 직렬 데이터를 수신하고, 상기 직렬 데이터에 포함된 상기 양자 난수를 이용하여 데이터를 암호화할 수 있다(S210).
도 7은 도 2에 도시된 양자 난수 발생 장치의 다른 실시 예를 나타내는 블록도이다.
도 3과 도 7을 참조하면, 도 3에서는 제1스위치 회로(SW1)로부터 출력된 직렬 클락 신호(SCL)와 직렬 데이터(SDA)는 제2스위치 회로(SW2)를 통해 양자 난수 발생 장치 칩셋(210)으로 전송되나, 도 7에서는 제2스위치 회로(SW2)로부터 출력된 직렬 클락 신호(SCL)와 직렬 데이터(SDA)는 제1스위치 회로(SW1)를 통해 양자 난수 발생 장치 칩셋(210)으로 전송된다.
도 7에 도시된 양자 난수 발생 장치(200)의 작동과 도 3에 도시된 양자 난수 발생 장치(200)의 작동은 동일하므로, 도 7에 도시된 양자 난수 발생 장치(200)의 작동에 대한 상세한 설명은 생략한다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100: 컴퓨팅 시스템
110: 마스터
130: 제1슬레이브
150: 제2슬레이브
200: 제3슬레이브 또는 양자 난수 발생 장치
202: 커넥터
240: SMBus 인터페이스
208: I2C 인터페이스
230: 어드레스 변환 제어 회로
240: 어드레스 변환 회로
241: 제1제어 신호 생성 회로

Claims (13)

  1. 제1어드레스에 의해 식별되는 양자 난수 발생 칩셋;
    직렬 클락 신호를 수신하는 제1핀과 상기 직렬 클락 신호에 동기된 직렬 데이터를 수신하는 제2핀을 포함하는 커넥터;
    제1제어 신호를 생성하는 제1제어 신호 생성 회로; 및
    상기 제1제어 신호가 제1레벨일 때 상기 제2핀을 통해 수신된 상기 직렬 데이터에 포함된 제1어드레스를 상기 양자 난수 발생 칩셋으로 바이패스하고, 상기 제1제어 신호가 제2레벨일 때 상기 제2핀을 통해 수신된 상기 직렬 데이터에 포함된 제2어드레스를 상기 제1어드레스로 변환하여 상기 양자 난수 발생 칩셋으로 전송하는 어드레스 변환 제어 회로를 포함하고,
    상기 제1어드레스가 상기 양자 난수 발생 칩셋으로 입력되면, 상기 양자 난수 발생 칩셋은 상기 직렬 클락 신호에 동기된 데이터를 상기 제2핀으로 전송하는 양자 난수 발생 장치.
  2. 제1항에 있어서,
    상기 제1제어 신호 생성 회로는 수동 전기 스위치인 양자 난수 발생 장치.
  3. 제1항에 있어서, 상기 어드레스 변환 제어 회로는,
    상기 제1핀에 접속된 SMBus 제1전송선;
    상기 제2핀에 접속된 SMBus 제2전송선;
    상기 SMBus 제1전송선과 상기 SMBus 제2전송선으로 SMBus 전압을 공급하는 제1전압 발생 회로;
    상기 양자 난수 발생 칩셋에 접속된 I2C 제1전송선과 I2C 제2전송선으로 I2C 버스 전압을 공급하는 제2전압 발생 회로;
    상기 I2C 제1전송선에 접속된 제3스위치;
    상기 I2C 제2전송선에 접속된 제4스위치;
    상기 I2C 버스 전압에 응답하여 상기 SMBus 제1전송선과 상기 제3스위치를 연결하는 제1스위치;
    상기 I2C 버스 전압에 응답하여 상기 SMBus 제2전송선과 상기 제4스위치를 연결하는 제2스위치; 및
    상기 제1제어 신호가 상기 제1레벨일 때 상기 제3스위치와 상기 제4스위치 각각을 온(on)시키기 위한 제3제어 신호를 생성하고, 상기 제1제어 신호가 상기 제2레벨일 때 상기 제3스위치와 상기 제4스위치 각각을 오프(off)시키기 위한 상기 제3제어 신호를 생성하는 어드레스 변환 회로를 포함하는 양자 난수 발생 장치.
  4. 제3항에 있어서, 상기 어드레스 변환 회로는,
    상기 제1제어 신호가 상기 제2레벨일 때 변환 설정 어드레스를 이용하여 상기 제2어드레스를 상기 제1어드레스로 변환하고 상기 제1어드레스를 상기 I2C 제2전송선으로 전송하는 양자 난수 발생 장치.
  5. 제4항에 있어서, 상기 어드레스 변환 회로는,
    상기 제2어드레스로부터 변환된 상기 제1어드레스가 상기 I2C 제2전송선으로 전송되는 동안 상기 제3스위치와 상기 제4스위치 각각을 오프(off)시키기 위한 상기 제3제어 신호를 생성하고,
    상기 데이터가 상기 제2핀으로 전송되는 동안 상기 제3스위치와 상기 제4스위치 각각을 온(on)시키기 위한 상기 제3제어 신호를 생성하는 양자 난수 발생 장치.
  6. 제5항에 있어서,
    상기 양자 난수 발생 장치는 mPCIe 모듈인 양자 난수 발생 장치.
  7. 제5항에 있어서,
    상기 양자 난수 발생 장치는 M.2 모듈인 양자 난수 발생 장치.
  8. 제4항에 있어서, 상기 어드레스 변환 회로는,
    상기 제1제어 신호와 비교 신호를 논리곱하여 상기 제3제어 신호를 생성하는 제1AND 게이트;
    상기 변환 설정 어드레스와 상기 제2스위치의 출력 어드레스를 수신하는 XOR 게이트;
    상기 XOR 게이트의 출력 단자에 접속된 인버터;
    상기 인버터의 출력 신호와 상기 제3제어 신호를 수신하는 제2AND 게이트; 및
    상기 I2C 제2전송선에 접속된 드레인과 상기 제2AND 게이트의 출력 단자에 접속된 게이트를 포함하는 오픈-드레인 NMOS 트랜지스터를 포함하는 양자 난수 발생 장치.
  9. 제8항에 있어서, 상기 어드레스 변환 회로는,
    상기 직렬 클락 신호가 제2레벨이고 상기 직렬 데이터가 제1레벨일 때, 인에이블 신호를 생성하는 인에이블 신호 생성기;
    상기 인에이블 신호에 응답하여 상기 직렬 클락 신호의 토글링(toggling) 회수를 카운트하여 카운트 값을 생성하는 카운터;
    상기 카운트 값과 기준 카운트 값을 비교하고, 비교 결과에 따라 상기 비교 신호를 생성하는 비교기;
    상기 비교 신호에 따라 상기 직렬 클락 신호와 접지 전압을 출력하는 멀티플렉서; 및
    상기 멀티플렉서로부터 출력된 상기 직렬 클락 신호에 응답하여 상기 변환 설정 어드레스를 상기 XOR 게이트로 전송하는 시프트 레지스터를 더 포함하는 양자 난수 발생 장치.
  10. 제4항에 있어서,
    상기 제1전압은 상기 제2전압보다 높은 양자 난수 발생 장치.
  11. 제4항에 있어서,
    상기 제1스위치와 상기 제2스위치 각각은 상기 I2C 버스 전압을 수신하는 게이트를 포함하는 NMOS 트랜지스터이고,
    상기 제3스위치와 상기 제4스위치 각각은 상기 제3제어 신호를 수신하는 게이트를 포함하는 PMOS 트랜지스터인 양자 난수 발생 장치.
  12. 제1어드레스에 의해 식별되는 제1슬레이브;
    상기 제1어드레스에 의해 식별되는 양자 난수 발생 칩셋을 포함하는 제2슬레이브; 및
    상기 제1슬레이브와 상기 제2슬레이브 각각으로 직렬 클락 신호와 상기 직렬 클락 신호에 동기된 직렬 데이터를 전송하는 마스터를 포함하고,
    상기 제2슬레이브는,
    상기 직렬 클락 신호를 수신하는 제1핀과 상기 직렬 데이터를 수신하는 제2핀을 포함하는 커넥터;
    제1제어 신호를 생성하는 제1제어 신호 생성 회로; 및
    상기 제1제어 신호가 제1레벨일 때 상기 제2핀을 통해 수신된 상기 직렬 데이터에 포함된 제1어드레스를 상기 양자 난수 발생 칩셋으로 바이패스하고, 상기 제1제어 신호가 제2레벨일 때 상기 제2핀을 통해 수신된 상기 직렬 데이터에 포함된 제2어드레스를 상기 제1어드레스로 변환하여 상기 양자 난수 발생 칩셋으로 전송하는 어드레스 변환 제어 회로를 포함하고,
    상기 제1어드레스가 상기 양자 난수 발생 칩셋으로 입력되면, 상기 양자 난수 발생 칩셋은 상기 직렬 클락 신호에 동기된 데이터를 상기 제2핀을 통해 상기 마스터로 전송하는 컴퓨팅 시스템.
  13. 제12항에 있어서, 상기 마스터는,
    상기 커넥터에 접속된 제1슬롯;
    상기 제1슬레이브의 커넥터에 접속된 제2슬롯;
    상기 제1어드레스, 상기 제2어드레스, 및 헤더 데이터를 포함하는 장치 드라이버를 실행하는 CPU; 및
    상기 제1슬롯과 상기 CPU 사이에 접속된 SMBus 인터페이스를 포함하고,
    상기 제1슬레이브는 상기 장치 드라이버로부터 전송된 상기 제1어드레스에 따라 제3헤더 데이터를 상기 마스터로 전송하고.
    상기 제2슬레이브는 상기 장치 드라이버로부터 전송된 상기 제1어드레스에 따라 상기 제1데이터를 상기 마스터로 전송하고.
    상기 장치 드라이버는,
    상기 제3헤더 데이터와 상기 제1데이터에 의해 생성된 수신 데이터와 상기 헤더 데이터를 비교하고, 상기 수신 데이터와 상기 헤더 데이터가 일치하지 않을 때에만 상기 제2어드레스를 상기 제1슬레이브와 상기 제2슬레이브로 전송하기 위해 상기 제2어드레스를 상기 SMBus 인터페이스로 전송하는 컴퓨팅 시스템.
KR1020220117472A 2022-09-16 2022-09-16 어드레스 변환 제어 회로를 포함하는 양자 난수 발생 장치 및 이를 포함하는 컴퓨팅 시스템 KR20240038505A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220117472A KR20240038505A (ko) 2022-09-16 2022-09-16 어드레스 변환 제어 회로를 포함하는 양자 난수 발생 장치 및 이를 포함하는 컴퓨팅 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220117472A KR20240038505A (ko) 2022-09-16 2022-09-16 어드레스 변환 제어 회로를 포함하는 양자 난수 발생 장치 및 이를 포함하는 컴퓨팅 시스템

Publications (1)

Publication Number Publication Date
KR20240038505A true KR20240038505A (ko) 2024-03-25

Family

ID=90473719

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220117472A KR20240038505A (ko) 2022-09-16 2022-09-16 어드레스 변환 제어 회로를 포함하는 양자 난수 발생 장치 및 이를 포함하는 컴퓨팅 시스템

Country Status (1)

Country Link
KR (1) KR20240038505A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101826397B1 (ko) 2014-12-12 2018-02-06 인텔 코포레이션 다수의 PCIe 커넥터를 가진 PCIe 카드

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101826397B1 (ko) 2014-12-12 2018-02-06 인텔 코포레이션 다수의 PCIe 커넥터를 가진 PCIe 카드
KR102287653B1 (ko) 2014-12-12 2021-08-06 인텔 코포레이션 다수의 PCIe 커넥터를 가진 PCIe 카드

Similar Documents

Publication Publication Date Title
CN108227613B (zh) 电子装置及其操作方法
US8898358B2 (en) Multi-protocol communication on an I2C bus
US7249209B2 (en) System and method for dynamically allocating inter integrated circuits addresses to multiple slaves
US20080270654A1 (en) Bus System for Selectively Controlling a Plurality of Identical Slave Circuits Connected to the Bus and Method Therefore
US20180367504A1 (en) System, Apparatus And Method For Tunneling And/Or Multiplexing Via A Multi-Drop Interconnect
US11921652B2 (en) Method, apparatus and system for device transparent grouping of devices on a bus
JP2018509715A (ja) デカルトアドレス指定を使用した低電力および低待ち時間デバイスのエニュメレーション
WO2005060688A2 (en) Serial communication device configurable to operate in root mode or endpoint mode
US6145044A (en) PCI bus bridge with transaction forwarding controller for avoiding data transfer errors
KR20240038505A (ko) 어드레스 변환 제어 회로를 포함하는 양자 난수 발생 장치 및 이를 포함하는 컴퓨팅 시스템
JP2007529815A (ja) 信号送信装置及び信号送信のための方法
US20080263248A1 (en) Multi-drop extension for a communication protocol
US8521943B2 (en) Data transmission system and method of reading data
CN111522757B (zh) 一种基于i2c总线的中断读取与清除的控制方法
Zhu et al. Multi-Machine Communication Based on I^ sup 2^ C-Bus
CN115391261A (zh) 高速外围组件互连装置以及包括其的计算系统
TWI512482B (zh) 主機板組件及其資料處理系統
CN107783862B (zh) 一种基于pca9555的8路服务器主从bmc复位控制方法
CN114968860B (zh) 高速外围组件互连接口装置以及包括该接口装置的系统
CN111934859A (zh) 密码卡通信方法、密码卡、计算机设备
CN107949995B (zh) 用于数据通信的装置、方法和系统
US20230315672A1 (en) Interface device and computing system including the same
US11729643B2 (en) Communication device and image forming apparatus
CN113032321B (zh) 地址扩展电路、通信接口芯片及通信系统
US7386635B2 (en) Electronic device circuit having a sensor function for expandably connecting a plurlity of electronic devices

Legal Events

Date Code Title Description
E902 Notification of reason for refusal