KR101852986B1 - 중복 퓨즈 코딩을 위한 컴퓨터 실행 방법, 정보 저장 장치 및 비일시적 컴퓨터 판독 가능 매체 - Google Patents

중복 퓨즈 코딩을 위한 컴퓨터 실행 방법, 정보 저장 장치 및 비일시적 컴퓨터 판독 가능 매체 Download PDF

Info

Publication number
KR101852986B1
KR101852986B1 KR1020140027400A KR20140027400A KR101852986B1 KR 101852986 B1 KR101852986 B1 KR 101852986B1 KR 1020140027400 A KR1020140027400 A KR 1020140027400A KR 20140027400 A KR20140027400 A KR 20140027400A KR 101852986 B1 KR101852986 B1 KR 101852986B1
Authority
KR
South Korea
Prior art keywords
fuse
string
fuse array
bit
addressable line
Prior art date
Application number
KR1020140027400A
Other languages
English (en)
Other versions
KR20140110797A (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 KR20140110797A publication Critical patent/KR20140110797A/ko
Application granted granted Critical
Publication of KR101852986B1 publication Critical patent/KR101852986B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/18Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/20Address safety or protection circuits, i.e. arrangements for preventing unauthorized or accidental access

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Abstract

퓨즈 정보는 충분한 잉여를 제공하는 방식으로 퓨즈 어레이에 기입될 수 있으며, 이것은 악의적인 단체가 퓨즈 어레이를 공격하는 것을 어렵게 만든다.

Description

중복 퓨즈 코딩{REDUNDANT FUSE CODING}
본 발명은 전반적으로 퓨즈 감지에 관한 것이다.
퓨즈 감지는 일반적으로 행과 컬럼으로 할당된 비트를 포함하는 메모리 어레이의 감지를 말한다. 일반적으로, 한 행(row)은 한 번에 감지될 수 있고, 그 행에 대한 어드레스는 다수의 상이한 방식으로 선택될 수 있다.
퓨즈 감지를 이용하는 저장 소자의 예는, 퓨즈, 비휘발성 메모리, 1회 프로그래밍 가능 메모리, 온다이 프로그램가능 퓨즈(on-die programmable fuse)를 포함한다. 현재 퓨즈 감지 프로토콜의 한가지 특성은 퓨즈 감지가 매번 동일한 순서로 수행된다는 점이다. 선택된 행의 순서 또는 시퀀스는 항상 동일하다.
이로 인해 퓨즈 감지 프로토콜은 예로서 DEMA(Differential Electromagnetic Analysis), DPA(Differential Power Analysis) 및 LTM(Latent Trait Models)과 같은 소위 부채널 공격 방법에 노출된다. 퓨즈의 값은 퓨즈 감지 중에 판정될 수 있다. 무한 리셋 루프에 장치를 배치하고, 각 루프의 리셋으로부터 동시에 장치의 동일 위치에 대해 측정을 행함으로써, 해커는 장치 내의 퓨즈값의 서명을 형성할 수 있다. 민감한 자산은 때때로 퓨즈에 저장되기 때문에, 이들 유형의 공격에 대한 보호는 매우 중요하다.
다음 도면을 참조하여 몇몇 실시예를 설명한다.
도 1은 일 실시예에 대한 개략도,
도 2는 일 실시예에 따른 도 1에 도시된 시퀀서의 개략도,
도 3은 일 실시예에 따른 퓨즈 어레이의 도면,
도 4는 일 실시예에 따른 중복 퓨징을 위한 흐름도,
도 5는 일 실시예에 따라 퓨즈 어레이를 판독하는 시퀀스의 흐름도,
도 6은 일 실시예에 따른 온다이 프로그램가능 퓨즈 어레이용 시퀀스에 대한 흐름도,
도 7은 일 실시예에 따른 퓨즈 어레이의 블록도,
도 8은 본 발명의 일 실시예의 개략도,
도 9는 일 실시예에 따른 퓨즈 감지 어레이에 대한 흐름도,
도 10은 일 실시예를 위한 시스템도,
도 11은 일 실시예의 전정면도(front elevational view)이다.
몇몇 실시예에 따라서, 충분히 중복하는 방식으로 퓨즈 정보를 퓨즈 어레이에 기입할 수 있고, 그것은 악의적인 단체가 퓨즈 어레이를 공격하는 것을 어렵게 만든다.
퓨즈 어레이를 공격하는 데는 여러가지 방식이 있다. 하나의 기술은 퓨즈의 상태를 단순히 변화시키는 것이다. 예로서, 0 상태에 있는 비트는 사용자가 지불하지 않았다는 것을 지시하는 것으로 상정하라. 판독 시도 중에 퓨즈 어레이 상의 전압을 올림으로써, 해커는 판독된 퓨즈에 저장된 0을 해커가 무료로 서비스받을 수 있는 1로서 변경할 수 있다. 다른 공격은 감지 증폭기를 대상으로 한다. 퓨즈를 회피하여 다양한 서비스에 대한 지불을 회피하는 또 다른 방식이 다양하게 존재한다.
본 명세서에서 설명하는 일 실시예에서, 온다이 프로그램가능 퓨즈가 이용될 수 있다. 온다이 프로그램가능 퓨즈는 퓨즈 어레이가 제조되어 발송된 후, 칩 제조자와는 다른 단체에 의해 프로그래밍될 수 있다. 그러나, 다른 비휘발성 메모리도 사용될 수 있다.
도 1을 참조하면, 다이(10)는 원래 장치 제조자 퓨즈 제어기(12) 및 온다이 또는 사용자 프로그램가능 퓨즈 제어기(14)를 포함할 수 있다. 온다이 퓨즈 제어기(14)는 개별 퓨즈 버스(22)에 맵핑하는 퓨즈와 연결될 수 있다. 그것은 다른 인터페이스가 온다이 퓨즈 제어기(14)와 상호작용하는 것을 가능하게 한다. 이들 인터페이스는 나중에 설명 및 도시한다.
온다이 퓨즈 제어기는 온다이 프로그램가능 퓨즈 모듈(30)의 자동 프로그래밍을 수행하는 시퀀스(16)를 포함할 수 있다. 한편, 사용자는 사용자가 희망하는 프로그래밍을 간단히 지시할 수 있고, 시퀀서(16)는 실질적으로 퓨즈 프로그래밍을 수행 및 구현하는 데 필요한 모든 단계를 구현하는 것을 자동으로 처리한다. 또한, 시퀀서(14)에 연결되는 것은 전원 온 상태 머신(18)이며, 이 전원 온 상태 머신(18)은 퓨즈 모듈 행을 무작위로 감지/프로그래밍할 책임이 있을 수 있다. 즉, 프로그래밍하는 행의 선택은 자동으로 그리고 무작위로 이루어져 해커가 그 프로그래밍을 방해하는 것을 방지(또는 그 가능성의 감소)할 수 있다. 제어기(14)는 또한 JTAG(Joint Test Action Group) 블록(20)을 위한 레지스터를 포함한다.
다이(10)는 퓨즈 전압 레귤레이터(24)에 연결되고, 차례로 온다이 프로그램가능 퓨즈 모듈(30)에 연결된다. 외부 전압 레귤레이터(26)는 OEM(original equipment manufacturer) 퓨즈 모듈(28)에 연결될 수 있다.
몇몇 실시예에서, 온다이 퓨즈 제어기(14) 및 온다이 프로그램가능 퓨즈 모듈(30)은 원래 장치 제조자 퓨즈 제어기(12) 및 원래 장치 제조자 퓨즈 모듈(28)로부터 완전히 격리되고 독립된다. 그것은 해커가 원래 장치 제조자 퓨즈 모듈에 액세스하는 다른 길을 차단한다.
도 2를 참조하면, 일 실시예에서, 온다이 프로그램가능 퓨즈에 대해 4개의 상이한 인터페이스가 도시된다. 제 1 인터페이스는 호스트 컴퓨터(32)이다. 다른 것은 보안 제어기 인터페이스(34)이다. 또 다른 인터페이스는 원래 장치 제조자 JTAG 인터페이스(36)이고, 마지막 인터페이스는 고객 JTAG 인터페이스(38)이다. 각 인터페이스(32-38)는 OR 게이트(42)를 통해 시퀀서(16)와 통신하는 전용 레지스터(40)에 정보를 제공할 수 있다.
OR 게이트는 한번에 하나의 인터페이스만 시퀀서(16)에 신호를 제공하도록 제어된다. 시퀀서(16)와의 통신은 아비터(44)에 의해 시행되는 바와 같이, 원자적 액세스만을 경유한다. 아비터(44)는 교차 검출기(46)에 연결되고, 교차 검출기(46)는 선택된 인터페이스로부터의 데이터를 레지스터(48)에 저장한다.
퓨즈 모듈(58)에 데이터를 기입할 시간일 때, 멀티레벨 퓨즈 프로그래밍에서 정확한 개시 전압이 달성되거나 요구되는 전압 레벨이 달성되는 경우, 퓨즈 판독/기입 상태 머신(50)은 퓨즈 전압 레귤레이터 상태 머신(52)에 VR(voltage regulator) 개시 신호를 발행한다. VR(voltage regulator) 완료(done) 신호는 퓨즈 판독/기입 머신(50)에 발행된다. 그 다음, 퓨즈 판독/기입 상태 머신(50)은 선택되는 퓨즈 모듈(58)의 적절한 블록으로 프로그래밍 신호를 발행한다. 일 실시예에서 퓨즈 전압 레귤레이터 상태 머신(52)은 SPI(serial parallel interface) 마스터 버스(54)를 통해 퓨즈 전압 레귤레이터(56)로 신호를 발행하여, 선택된 퓨즈 블록으로 프로그래밍 전압 VCCFHV를 공급한다.
각 인터페이스에 대해, 레지스터(40)는 전압 레벨 및 프로그래밍 지속 시간을 포함하는 모든 형태의 퓨징 방안을 제어한다. 또한, 각 인터페이스는 OR 게이트(42)와 같은 메카니즘을 구비하여 각각의 인터페이스를 디스에이블시킬 수 있다. 아비터는 어떤 인터페이스 및 어떤 유형의 트랜잭션이 하나를 초과하는 인터페이스가 동시에 트랜잭션을 발행하는 이벤트에서 액세스하게 될지를 판정하는 데 이용될 수 있다.
몇몇 실시예에서 4개의 인터페이스 및 2개의 트랜잭션 유형이 있다. 각기 일 트랜잭션 유형은 퓨즈 액세스이고 다른 트랜잭션 유형은 SPI 마스터를 통한 퓨즈 전압 레귤레이터 액세스이다. 각 트랜잭션 유형은 각 인터페이스에 의해 이용될 수 있다. 퓨즈가 4개의 인터페이스 각각으로부터 액세스하는 동안, 어드레스 레지스터의 비트(31)는 트랜잭션이 준비된 아비터를 지시하는 데 이용될 수 있다.
일단 아비터가 비트(31)가 설정된 것을 알면, 트랜잭션을 받아들여 그것을 시퀀서(16)로 송신한다. 아비터가 정보를 시퀀서로 송신한 후, 아비터는 완료 비트가 설정될 때까지 대기한다. 그 다음 아비터는 임의의 반환 정보를 캡쳐하여 그 정보를 트랜잭션을 개시하는 인터페이스에 출력한다. 일단 트랜잭션이 완료되면, 아비터는 다음 트랜잭션을 받아들인다.
상태 머신(50)은 아비터로부터의 모든 입력을 취하여 사용자에 의해서 요청되는 바와 같은 적절한 트랜잭션을 수행한다. 몇몇 실시예에서, 이것은 퓨즈 모듈(58) 및 전압 레귤레이터 상태 머신(52)과 통신하여 모든 동작에 대해 적절한 타이밍을 유지한다. 몇몇 실시예에서, 퓨즈 전압 레귤레이터 상태 머신은 판독/기입 상태 머신과 전압 레귤레이터 사이의 모든 트랜잭션을 처리하여 모든 타이밍 요구에 응답할 수 있다.
일 실시예에서 퓨즈 상태 머신 기입을 위한 의사 코드는 다음과 같다.
Figure 112014022649822-pat00001
퓨즈 상태 머신 판독을 위한 의사 코드는 다음과 같다.
Figure 112014022649822-pat00002
퓨즈 어레이 내에 중요한 정보를 저장하는 데 이용되는 비트의 수는 증가될 수 있다. 일 실시예로서, 단일 비트는 일련의 비트로 증가될 수 있고, 여기에서 일부 비트는 다른 비트에 대한 보수이다. 몇몇 실시예에서 하나의 액세스 가능한 행을 따르는 일련의 비트를 저장하는 데 더하여, 또한 일련의 행을 연속적으로 판독함으로써 판독되는 컬럼을 따라 비트가 확산될 수 있다. 또한, 컬럼 내의 비트는 행 내의 해당 비트를 보완하도록 이루어질 수 있다. 행 내의 비트 스트링 및 컬럼 내의 보수 스트링을 판독하고, 두 스트링을 비교함으로써, 공격이 식별될 수 있다.
예를 들어, 전압이 상승하는 공격에서, 공격자는 컬럼 내의 각 비트를 변경하기 위해서 적절한 시기에 전압을 3배 상승시켜야 한다. 그리고, 각 코드는 1과 0으로 이루어지기 때문에, 비트를 모두 1로 단순히 변경하는 것은 부적절한 퓨즈값으로서 인식되어야 한다. 마찬가지로 다른 공격을 저지할 수 있다.
도 3을 참조하면, 퓨즈 어레이 집적 회로(110)는 페이지를 따라 수직으로 확장되는 행(row)과 페이지를 가로질러 수평으로 연장되는 컬럼으로 정렬될 수 있는 비트를 함유하는 메모리 또는 퓨즈 어레이(112)를 포함할 수 있다. 물론 다른 배열도 가능하다. 컬럼은 컬럼 어드레스 회로(114)에 의한 판독 및 기입을 위해 액세스될 수 있다. 행은 행 어드레스 회로(116)에 의한 판독 및 기입을 위해 액세스될 수 있다. 액세스된 셀의 상태는 감지 증폭기(118)를 이용하여 판정될 수 있다. 회로(114, 116) 및 감지 증폭기(118)의 동작은 제어기(120)에 의해 제어될 수 있고, 제어기(120)는 2개의 예로서 마이크로컨트롤러 또는 마이크로프로세서일 수 있다.
도 4를 참조하면, 잉여 퓨징을 위한 시퀀스(122)는 소프트웨어, 펌웨어 또는 하드웨어로 구현될 수 있다. 소프트웨어 및 펌웨어 실시예에서, 그것은 자기, 광학 또는 반도체 저장 장치와 같은 하나 이상의 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 실행 명령어에 의해 구현될 수 있다. 일 실시예로서, 시퀀스는 제어기(120)에 의해 구현될 수 있다. 다른 변형도 고려된다.
시퀀스(122)는 다이아몬드 124에 도시된 바와 같이 저장될 비트가 있다고 판정됨으로써 개시된다. 그럴 경우, 블록 126에 도시된 바와 같이 멀티비트 코드 스트링은 생성될 수 있다. 따라서, 예를 들어, 0이 서비스 제공을 지시하는 것으로 의도된 경우, 코드 스트링은 1비트보다 크게 이루어지며, 여기에서 예를 들어 중앙 비트는 코드를 지시하고, 스트링 내의 다른 비트는 단지 코드의 보수이다. 당업자에게 다른 변형도 고려될 수 있다. 그 다음 블록 128에 도시된 바와 같이, 어드레싱 가능한 위치에 행을 따라 멀티비트 코드 스트링이 저장된다.
다음에, 블록 130에 도시된 바와 같이, 코드 스트링은 보수로 변환된다. 예를 들어, 코드 010은 101로 변환된다. 보수 코드 스트링은 행을 따라 저장될 수 있다. 그 결과, 코드 보수 스트링이 저장된 전체 컬럼을 얻어 내기 위해서, 컬럼이 아니라 행이 항상 판독되는 실시예에서 일련의 연속되는 행을 판독해야만 한다. 그 다음, 블록 132에 도시된 바와 같이, 보수 코드는 컬럼으로 저장된다.
코드 스트링을 액세스하는 시간이 도래하면, 도 5에 도시된 시퀀스(134)가 이용될 수 있다. 도 4의 시퀀스와 마찬가지로, 이 시퀀스(134)는 소프트웨어, 펌웨어 및/또는 하드웨어로 구현될 수 있다. 소프트웨어 및 펌웨어 실시예에서, 자기, 광학 또는 반도체 저장 장치와 같은 하나 이상의 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 실행 명령어에 의해 구현될 수 있다. 다시, 몇몇 실시예에서, 도 3에 도시된 제어기(120)에 의해 구현될 수 있다.
도 5의 시퀀스는 블록 136에 도시된 바와 같이, 차례로 행을 판독함으로써 개시된다. 행이 순차로 판독되거나 또는 행을 판독하는 시퀀스가 무작위로 되어, 행이 판독될 때마다 상이한 시퀀스가 이용될 수 있다. 그 다음, 블록 138에 도시된 바와 같이, 코드를 포함하는 일련의 행 및 보수를 포함하는 일련의 행을 판독함으로써, 코드 스트링 및 그 보수가 추출된다. 블록 140에 도시된 바와 같이, 코드 스트링 및 그 보수가 비교된다. 다이아몬드 142에서 매칭이 판정되는 경우, 블록 144에 도시된 바와 같이, 코드 스트링은 유효 또는 참으로서 받아들여 질 수 있다. 그렇지 않으면, 블록 146에 도시된 바와 같이, 코드 스트링은 거절되어 서비스가 거부될 수 있다.
도 6을 참조하면, 몇몇 실시예에 따라, 퓨즈 상태 머신 기입 프로토콜(60)은 소프트웨어, 펌웨어 및/또는 하드웨어로 구현될 수 있다. 펌웨어 및 소프트웨어 실시예에서, 그것은 자기, 광학 또는 반도체 저장 장치와 같은 하나 이상의 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 실행 명령어에 의해 구현될 수 있다. 예를 들어, 그것은 일 실시예에서 제어기(14)와 같이 적절한 제어기 내에 저장될 수 있다.
블록 62에 도시된 바와 같이, 사용자가 프로그래밍되길 요청하는 데이터 내에서 시프팅함으로써, 상태 머신(60) 시퀀스가 개시될 수 있다. 블록 64에 도시된 바와 같이, 전압 레귤레이터 전압이 높아진다. 블록 66에 도시된 바와 같이, 선택된 전압 레벨에서 한번에 1비트씩 프로그래밍된다. 다이아몬드 68에서 판정된 바와 같이, 이것이 최종 레벨인 경우 흐름이 종료된다. 그렇지 않으면, 블록 68에서 전압 레귤레이터 전압이 다음 레벨로 높아지고 흐름이 반복된다.
프로그래밍이 완료된 후, 블록 70에 도시된 바와 같이, ECC(error correction and control) 비트가 프로그래밍된다. 블록 72에 도시된 바와 같이 프로그래밍된 데이터만 판독된다. 마침내, 판독이 끝난 프로그래밍된 데이터는 ECC 비트를 이용하여 체크된다(블록 74). 데이터가 정확한 경우(다이아몬드 76), 흐름은 종료되고, 그렇지 않으면 프로그래밍을 다시하기 위해서 흐름이 반복된다.
판독 동작 중에, 프로그래밍된 각 행은 재판독되어 비교된다. ECC 데이터가 일치되는 경우, 데이터는 유효로 되어 사용될 수 있다.
도 7에 도시된 바와 같이, 퓨즈 어레이 아키텍처(80)는 통상적으로 복수의 모듈을 포함한다. 각 모듈은 4개의 그룹을 포함할 수 있다. 각 그룹은 4개의 퓨즈 블록을 포함할 수 있고, 퓨즈 블록은 일반적으로 각기 1000비트이다. 각 퓨즈 블록은 각기 32비트의 32행을 포함한다. 따라서, 도 7에 도시된 바와 같이, 참조 부호 81의 모듈 0은 참조 부호 82의 그룹 0-3을 포함할 수 있다. 각 그룹은 복수의 블록(84)을 포함할 수 있다. 임의 수의 모듈이 결합하여 퓨즈 어레이(80)를 생성할 수 있다.
어드레싱을 통해 퓨즈 블록으로의 액세스가 이루어진다. 감지될 행의 어드레스는 모듈 번호, 그룹 번호, 블록 번호 및 행 번호의 연쇄로서 파생된다. 어드레스를 이용하여 퓨즈 블록으로부터 퓨즈 행이 감지되면, 동일 어드레스는 온칩 랜덤 액세스 메모리에 퓨즈 컨텐츠를 저장하는 데 이용될 수 있다.
통상적인 퓨즈 감지 기술의 예측 가능성은 일반적으로 부채널 공격에서 해커의 이점으로 이용될 수 있다. 이 공격의 모색은 퓨즈 감지 알고리즘을 무작위화함으로써 감소될 수 있다. 일 실시예에서, 이 무작위화는 RNG(random number generator)를 이용하여, 퓨즈 감지가 수행될 때마다 LFSR(linear feedback shift register counter)을 시드배정할 수 있다. LFSR은 레지스터를 통해 1로부터 다음 최상위 비트로 신호를 전진시키도록 클럭된다. 소정 출력은 배타적 논리합되어 시프트 레지스터 입력으로 피드백된다. 카운터는 다음 퓨즈 행의 어드레스를 감지에 제공하는 데 이용된다. 다음 의사 코드는 알고리즘을 보여준다.
Figure 112014022649822-pat00003
도 8에 도시된 퓨즈 감지 상태 머신(86) 내의 모든 로직은 무작위로 산출된 어드레스에 기반을 둘 수 있다. 따라서, 퓨즈가 감지되어 랜덤 액세스 메모리에 저장되는 순서는 로직 상에 영향을 미치지 않는다. 선형 피드백 시프트 레지스터를 이용하여 초기 퓨즈 감지 어드레스를 무작위화하면, 해커가 퓨즈의 상태를 판정하는 것을 방지하여, 보안 자산을 보호한다.
따라서, 도 8에 도시된 바와 같이, 상태 머신(86)은 LFSR(linear feedback shift register) 카운터(90)에 시드를 제공하는 RNG(random number generator)(98)를 포함할 수 있다. 이 시드는 행 선택의 개시 순서를 변경하고, LFSR의 속성 때문에 행의 블록이 감지될 때마다 행을 감지하는 시퀀스를 변경한다. 시프트 레지스터 카운터(90)는 퓨즈 인터페이스(I/F)(92)에 제공되고, 그 다음 퓨즈 어레이(80)에 어드레스가 제공된다. 일 실시예에서, 퓨즈 어레이(80)의 출력은 RAM(random access memory)(91)에 저장될 수 있다. 그러나, 어드레싱 프로토콜을 무작위화하는 데 임의 기술이 사용될 수 있다. RNG(98)를 구비하는 하나를 초과하는 LFSR이 몇몇 실시예에서 사용될 수 있다.
무작위화된 퓨즈 감지를 구현하는 도 9에 도시된 시퀀스(94)는 소프트웨어, 펌웨어 및/또는 하드웨어로 구현될 수 있다. 소프트웨어 및 펌웨어 실시예에서, 그것은 자기, 광학 또는 반도체 메모리와 같은 하나 이상의 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 실행 명령어로서 구현될 수 있다. 그러한 장치의 예는 다른 실시예로서 전통적인 프로세서 및 전통적인 랜덤 액세스 메모리뿐만 아니라 상태 머신(86)을 포함한다. 몇몇 실시예에서, 예를 들어 선형 피드백 시프트 레지스터 카운터는 하드웨어 장치일 수 있고, 다른 실시예에서 그것은 전체적으로 또는 부분적으로 소프트웨어로 구현될 수 있다.
도 9에 도시된 시퀀스(94)는 블록 96에 도시된 바와 같이 난수 발생된 시드를 획득함으로써 개시된다. 일반적으로, 이것은 요청에 응답하여 발생해서 퓨즈 어레이를 액세스한다. 그 다음, 블록 99에 도시된 바와 같이, 시드를 이용하여 어드레스를 공급한다. 일 실시예에서, 시드는 무작위로 생성되는 어드레스를 퓨즈 행 어드레스의 형태로 출력하는 선형 피드백 시프트 레지스터 카운터에 제공될 수 있다. 블록 100에 도시된 바와 같이, 제 1 행을 선택하는 데 이 어드레스가 이용되어, 퓨즈 어레이(80)에 어드레스를 제공함으로써 퓨즈의 선택된 행을 감지한다. 일 실시예에서 다음 행은 LFSR에 의해 순서대로 하나씩 무작위로 선택될 수 있다. LFSR은 동일한 행을 두번 선택하지 않고, 오히려 그것은 매번 선택되지 않은 행을 선택한다. 일 실시예에서, 퓨즈 어레이는 선택된 데이터를 랜덤 액세스 메모리(91)에 출력한다. 다른 실시예에서 컬럼(column) 감지가 이용될 수 있다. 또한, 2차원 블록 감지도 이용될 수 있고, 여기에서 개시 블록 어드레스는 무작위로 선택된다.
다이아몬드 102에서의 체크는 모든 행이 감지되었는지를 판정한다. 모든 행이 감지 되지 않았으면 흐름이 반복되고, 그렇지 않으면 흐름이 종료될 수 있다.
몇몇 실시예에서, 다수의 무작위 선택 기술이 이용될 수 있다. 예를 들어, 하나를 초과하는 모듈, 그룹 및 블록이 선택된 블록의 무작위로 선택된 행에 더하여 선택될 수 있다. 즉, 몇몇 실시예에서, 행으로부터 블록으로, 그룹으로, 모듈로의 요구되는 입도(granularities) 각각에 대해, 난수를 갖는 개별 LSFR인 생성된 시드가 이용될 수 있다.
다른 실시예는 LFSR과는 다른 기타 기술을 이용할 수 있다. 예를 들어, 난수 생성기는 제공할 행을 선택할 수 있다. 저장 장치 또는 스코어보드는 미리 선택된 행을 저장할 수 있다. 그래서, 행이 재선택된 경우, 스코어보드를 체크함으로써 판정되는 바와 같이, 무작위 선택기는 다른 행을 무작위로 선택하게 주문받는다.
몇몇 실시예에서, 퓨즈의 해킹을 어드레싱하는 다른 기술이 상술한 무작위 감지 순서 개념과 함께 이용될 수 있다. 이들 조합은 몇몇 실시예에서 상승적인 결과를 야기할 수 있다.
몇몇 실시예에서, 해킹에 대한 다수의 방어가 조합될 수 있다. 예를 들어, 일 실시예에서, 퓨즈 어레이의 무작위 어드레싱은 온다이 및 논온다이(non-on-die) 프로그램가능 퓨즈 어레이를 개별적으로 액세스할 수 있는 것과 조합될 수 있다. 다른 실시예에서, 무작위로 어드레싱된 퓨즈 어레이는 잉여 퓨즈 코딩을 이용할 수 있다. 다른 실시예에서, 무작위 어드레싱 기술은 임의의 상술한 기술과 조합될 수 있다. 본 발명은 온다이 프로그램가능 퓨즈 실시예로 제한되는 것은 아니다.
도 10은 시스템(700)의 실시예를 도시한다. 실시예에서, 시스템(700)은 매체 시스템일 수 있지만, 시스템(700)이 이와 관련하여 제한되는 것은 아니다. 예를 들어, 시스템(700)은 PC(personal computer), 랩탑 컴퓨터, 울트랍 랩탑 컴퓨터, 타블렛, 터치패드, 휴대형 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, PDA(personal digital assistant), 휴대 전화, 휴대 전화/PDA 조합, 텔레비전, 스마트 장치(예를 들어, 스마트폰, 스마트 타블릿 또는 스마트 텔레비전), MID(mobile internet device), 메시징 장치, 데이터 통신 장치 등에 편입될 수 있다.
실시예에서, 시스템(700)은 디스플레이(720)에 연결된 플랫폼(702)을 구비한다. 플랫폼(702)은 컨텐츠 서비스 장치(730) 또는 컨텐츠 배달 장치(740) 또는 다른 유사 컨텐츠원과 같은 컨텐츠 장치로부터 컨텐츠를 수신할 수 있다. 하나 이상의 네비게이션 특징을 구비하는 네비게이션 제어기(750)는 예를 들어 플랫폼(702) 및/또는 디스플레이(720)와 상호작용하는 데 이용될 수 있다. 이들 구성요소 각각은 보다 상세히 후술된다.
실시예에서, 플랫폼(702)은 칩셋(705), 프로세서(710), 메모리(712), 저장 장치(714), 그래픽 서브시스템(715), 애플리케이션(716) 및/또는 무선 통신 장치(718)의 임의 조합을 구비할 수 있다. 칩셋(705)은 프로세서(710), 메모리(712), 저장 장치(714), 그래픽 서브시스템(715), 애플리케이션(716) 및/또는 무선 통신 장치(718) 간에 상호 통신을 제공할 수 있다. 예를 들어, 칩셋(705)은 저장 장치(714)와 상호 통신을 제공하는 것이 가능한 저장 장치 어댑터(도시 생략함)를 포함할 수 있다.
프로세서(710)는 CISC(Complex Instruction Set Computer) 또는 RISC(Reduced Instruction Set Computer) 프로세서, x86 명령어 세트 호환 프로세서, 멀티 코어 또는 기타 다른 마이크로 프로세서 또는 CPU(central processing unit)로서 구현될 수 있다. 실시예에서, 프로세서(710)는 듀얼 코어 프로세서, 듀얼 코어 모바일 프로세서 등을 구비할 수 있다. 프로세서는 메모리(712)와 함께 도 4, 도 5, 도 6 및 도 9의 시퀀스를 구현할 수 있다.
메모리(712)는 RAM(Random Access Memory), DRAM(Dynamic Random Access Memory) 또는 SRAM(Static RAM)과 같은 휘발성 메모리 장치로서 구현될 수 있지만, 이것으로 제한되지는 않는다.
저장 장치(714)는 자기 디스크 드라이브, 광학 디스크 드라이브, 테이프 드라이브, 내부 저장 장치, 부속 저장 장치, 플램시 메모리, 배터리 백업 SDRAM(synchronous DRAM) 및/또는 네트워크 액세스 가능 저장 장치와 같은 비휘발성 저장 장치로서 구현될 수 있지만, 이것으로 제한되는 것은 아니다. 실시예에서, 예를 들어 다수의 하드 드라이브가 포함되는 경우, 저장 장치(714)는 귀중한 디지털 매체에 대한 보호가 강화된 저장 성능을 증가시키는 기술을 구비할 수 있다.
그래픽 서브시스템(715)은 디스플레이용 정지 화상 또는 동영상과 같은 이미지의 처리를 수행할 수 있다. 그래픽 서브시스템(715)은 예를 들어 GPU(graphics processing unit) 또는 VPU(visual processing unit)일 수 있다. 아날로그 또는 디지털 인터페이스가 그래픽 서브시스템(715) 및 디스플레이(720)과 통신적으로 연결되는 데 이용될 수 있다. 예를 들어, 인터페이스는 고화질 멀티미디어 인터페이스(HDMI : High-Definition Multimedia Interface), 디스플레이 포트, 무선 HDMI 및/또는 무선 HD 컴플라이언트 기술의 임의 조합일 수 있다. 그래픽 서브시스템(715)은 프로세서(710) 또는 칩셋(705)에 통합될 수 있다. 그래픽 서브시스템(715) 칩셋(705)와 통신적으로 연결된 독립형 카드일 수 있다.
본 명세서에서 설명되는 그래픽 및/또는 동영상 처리 기술은 다양한 하드웨어 아키텍처로 구현될 수 있다. 예를 들어, 그래픽 및/또는 동영상 기능은 칩셋 내에 통합될 수 있다. 그 대신, 별개의 그래픽 및/또는 동영상 프로세서가 이용될 수 있다. 또 다른 실시예로서, 그래픽 및/또는 동영상 기능은 멀티 코어 프로세서를 포함하는 범용 프로세서에 의해 구현될 수 있다. 또 다른 실시예에서, 소비자 전자 장치에서 기능이 구현될 수 있다.
무선 장치(718)는 여러 적절한 무선 통신 기술을 이용하는 신호의 송신 및 수신이 가능한 하나 이상의 무선 장치를 포함할 수 있다. 그러한 기술은 하나 이상의 무선망에 걸쳐 통신을 수반할 수 있다. 바람직한 무선 통신은 WLAN(wireless local area networks), WPAN(wireless personal area networks), WMAN(wireless metropolitan area network), 휴대 전화망 및 위성망을 포함한다(그러나 이것으로 제한되는 것은 아님). 그러한 네트워크에 걸친 통신 중에, 무선 장치(718)는 임의 버전의 하나 이상의 표준에 따라 운영될 수 있다.
실시예에서, 디스플레이(720)는 임의 텔레비젼 유형의 모니터 또는 디스플레이를 구비할 수 있다. 디스플레이(720)는 예를 들어 컴퓨터 디스플레이 스크린, 터치 스크린 디스플레이, 동영상 모니터, 텔레비젼형 장치 및/또는 텔레비전을 구비할 수 있다. 디스플레이(720)는 디지털 및/또는 아날로그일 수 있다. 실시예에서, 디스플레이(720)는 홀로그램 디스플레이일 수 있다. 또한, 디스플레이(720)는 시각적 투사를 수신할 수 있는 투명 표면일 수 있다. 그러한 투사는 정보, 이미지 및/또는 객체의 여러 형태를 전달할 수 있다. 예를 들어, 그러한 투사는 MAR(mobile augmented reality) 애플리케이션에 대한 시각적 중첩일 수 있다. 하나 이상의 소프트웨어 애플리케이션(716)의 제어하에서, 플랫폼(702)은 디스플레이(720) 상에서 사용자 인터페이스(722)를 표시할 수 있다.
실시예에서, 컨텐츠 서비스 장치(730)는 임의의 국가, 국제 및/또는 독립 장치에 의해 호스팅될 수 있고 그래서 예를 들어 인터넷을 통해서 플램폼에 액세스 가능하다. 컨텐츠 서비스 장치(730)는 플랫폼(702) 및/또는 디스플레이(720)에 연결될 수 있다. 플랫폼(702) 및/또는 컨텐츠 서비스 장치(730)는 네트워크(760)에 연결되어 네트워크(760)로 그리고 네트워크(760)로부터 매체 정보를 통신(예를 들어 송신 및/또는 수신)할 수 있다. 컨텐츠 배달 장치(740)는 또한 플랫폼(702) 및/또는 디스플레이(720)에 연결될 수 있다.
실시예에서, 컨텐츠 서비스 장치(730)는 케이블 텔레비전 박스, 개인용 컴퓨터, 네트워크, 전화, 인터텟 가능 장치 또는 디지털 정보 및/또는 컨텐츠를 배달할 수 있는 기기, 그리고 네트워크(760)를 통해서 또는 직접적으로 컨텐츠 공급자와 플랫폼(702) 및/디스플레이(720) 사이에서 컨텐츠를 단방향으로 또는 양방향으로 통신할 수 있는 기타 유사 장치를 구비할 수 있다. 컨텐츠는 시스템(700) 내의 구성요소 중 어느 하나로 그리고 시스템(700) 내의 구성요소 중 어느 하나로부터 네트워크(760)를 통해 컨텐츠 공급자와 단방향 및/또는 양방향으로 통신될 수 있다는 점이 명확할 것이다. 컨텐츠의 예는 예를 들어 동영상, 음악, 의료 및 게임 정보 등을 포함하는 임의의 매체 정보를 포함할 수 있다.
컨텐츠 서비스 장치(730)는 매체 정보, 디지털 정보 및/또는 기타 컨텐츠를 포함하는 케이블 텔레비전 프로그래밍과 같은 컨텐츠를 수신한다. 컨텐츠 공급자의 예는 임의의 케이블 또는 위성 텔레비전 또는 무선 또는 인터넷 컨텐츠 공급자를 포함할 수 있다. 제공된 예는 본 발명의 실시예를 제한하고자 하는 것은 아니다.
실시예에서, 플랫폼(702)은 하나 이상의 네비게이션 특징을 갖는 네비게이션 제어기(750)로부터 제어 신호를 수신할 수 있다. 제어기(750)의 네비게이션 특징은 예를 들어 사용자 인터페이스(722)와의 상호 작용에 이용될 수 있다. 실시예에서, 네비게이션 제어기(750)는 사용자가 공간적인(예를 들어, 연속 및 다차원) 데이터를 컴퓨터에 입력할 수 있게 하는 컴퓨터 하드웨어 구성요소(특히 휴면 인터페이스 장치)일 수 있는 포인팅 장치일 수 있다. GUI(graphical user interface), 텔레비전 및 모니터와 같은 많은 시스템은 사용자가 물리적인 몸짓을 이용하여 제어하거나 컴퓨터 또는 텔레비전에 데이터를 제공할 수 있게 한다.
제어기(750)의 네비게이션 특징의 동작은 디스플레이 상에서 표시되는 포인터, 커서, 촛점 링 또는 기타 시각적인 지시기의 동작에 의해 디스플레이(예를 들어, 디스플레이(720)) 상에 반향될 수 있다. 예를 들어, 소프트웨어 애플리케이션(716)의 제어 하에서, 네비게이션 제어기(750) 상에 위치한 네비게이션 특징은 예를 들어 사용자 인터페이스(722) 상에 표시되는 시각적인 네비게이션 특징에 맵핑될 수 있다. 실시예에서, 제어기(750)는 분리된 구성 요소가 아닐 수 있지만, 플랫폼(702) 및/또는 디스플레이(720)에 통합될 수 있다. 그러나, 실시예는, 본 명세서에서 도시되거나 설명된 소자 또는 그와 관련한 것으로 제한되는 것은 아니다.
실시예에서, 드라이버(도시 생략함)는 예를 들어 인에이블될 때 부팅을 개시한 후, 버튼의 터치를 구비하는 텔리비젼류 플랫폼(702)을 사용자가 즉시 켜거나 끌 수 있게 하는 기술을 구비할 수 있다. 프로그램 로직은 플랫폼이 꺼질 때 플랫폼(720)이 매체 어댑터 또는 기타 컨텐츠 서비스 장치(730) 또는 컨텐츠 배달 장치(740)에 컨텐츠를 스트리밍할 수 있게 한다. 또한, 칩셋(705)은 예를 들어 5.1 채널 서라운드 사운드 오디오 및/또는 7.1채널 고밀도 서라운드 사운드 오디오를 지원하는 하드웨어 및/또는 소프트웨어를 구비할 수 있다. 드라이버는 통합된 그래픽 플랫폼을 위한 그래픽 드라이버를 포함할 수 있다. 실시예에서, 그래픽 드라이버는 PCI(peripheral component interconnect) 익스프레스 그래픽 카드를 구비할 수 있다.
여러 실시예에서, 시스템(700)에 도시된 임의의 하나 이상의 구성 요소는 통합될 수 있다. 예를 들어, 플랫폼(702)과 컨텐츠 서비스 장치(730)가 통합될 수 있거나, 또는 플랫폼(702)과 컨텐츠 배달 장치(740)가 통합될 수 있거나, 또는 플랫폼(702), 컨텐츠 서비스 장치(730) 및 컨텐츠 배달 장치(740)가 통합될 수 있다. 여러 실시예에서, 플랫폼(702)과 디스플레이(720)는 통합된 유닛일 수 있다. 예를 들어, 디스플레이(720)와 컨텐츠 서비스 장치(730)가 통합될 수 있고, 디스플레이(720)와 컨텐츠 배달 장치(740)가 통합될 수 있다. 이들 예는 본 발명을 제한하고자 하는 것이 아니다.
여러 실시예에서, 시스템(700)은 무선 시스템, 유선 시스템 또는 그 둘의 조합으로서 구현될 수 있다. 무선 시스템으로서 구현되는 경우, 시스템(700)은 하나 이상의 안테나, 송신기, 수신기, 송수신기, 증폭기, 필터, 제어 로직 등과 같은 무선 공유 매체를 거쳐 통신하는 데 적절한 구성 요소 및 인터페이스를 포함할 수 있다. 무선 공유 매체의 예는 RF 스펙트럼 등과 같은 무선 스펙트럼의 일부를 포함할 수 있다. 유선 시스템으로서 구현되는 경우, 시스템(700)은 I/O(input/output) 어댑터, I/O 어댑터를 해당하는 유선 통신 매체와 접속하는 물리적 커넥터, NIC(network interface card), 디스크 제어기, 동영상 제어기, 음성 제어기 등과 같은 유선 통신 매체를 통해서 통신하는 데 적합한 구성 요소 및 인터페이스를 포함할 수 있다. 유선 통신 매체의 예는 유선, 케이블, 금속 리드, PCB(printed circuit board), 뒷판, 패브릭 스위치, 반도체 재료, 꼬임 쌍선, 동축 케이블, 광 섬유 등을 포함할 수 있다.
플랫폼(702)은 하나 이상의 놀리적 또는 물리적 채널을 수립하여 정보를 통신할 수 있다. 정보는 매체 정보 및 제어 정보를 포함할 수 있다. 매체 정보는 사용자에게 예정된 컨텐츠를 나타내는 임의 데이터를 말할 수 있다. 컨텐츠의 예는 예를 들어 음성 대화, 화상 회의, 동영상 스트리밍, 전자 메일(이메일) 메시지, 음성 메일 메시지, 영숫자 기호, 그래픽, 이미지, 동영상, 문자 등으로부터의 데이터를 포함할 수 있다. 예를 들어, 음성 대화로부터의 데이터는 대사 정보, 묵음 기간, 배경 잡음, 통신 소음, 음색 등일 수 있다. 제어 정보는 자동화된 시스템에 예정된 명령, 명령어 또는 제어 워드를 나타내는 임의 데이터를 말할 수 있다. 예를 들어, 제어 정보는 시스템을 통해 매체 정보를 배분하는 데 이용되거나, 노드를 지시하여 사전 결정된 방식으로 매체 정보를 처리하는 데 이용될 수 있다. 그러나, 실시예는 도 10에 도시되거나 설명된 소자 또는 그와 관련하여 제한되는 것은 아니다.
상술한 바와 같이, 시스템(700)은 물리적 스타일 또는 폼 팩터를 변경함으로써 구현될 수 있다. 도 11은 시스템(700)이 구현되는 소형 폼 팩터 장치(800)의 실시예를 도시한다. 실시예에서, 예를 들어 장치(800)는 무선 능력을 갖는 모바일 컴퓨팅 장치로서 구현될 수 있다. 모바일 컴퓨터 장치는 처리 시스템 및 예를 들어 하나 이상의 배터리와 같은 이동 전원 또는 전원 공급기를 구비하는 임의의 장치를 나타낼 수 있다.
상술한 바와 같이, 모바일 컴퓨팅 장치의 예는 PC(personal computer), 랩탑 컴퓨터, 울트라 랩탑 컴퓨터, 타블렛, 터치패드, 휴대형 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, PDA(personal digital assistant), 휴대 전화, 휴대 전화/PDA 조합, 텔레비전, 스마트 장치(예를 들어, 스마트폰, 스마트 타블릿 또는 스마트 텔레비전), MID(mobile internet device), 메시징 장치, 데이터 통신 장치 등에 편입될 수 있다.
모바일 컴퓨터 장치의 예는 또한 손목 컴퓨터, 손가락 컴퓨터, 반지 컴퓨터, 안경 컴퓨터, 벨트 클립 컴퓨터, 암 밴드 컴퓨터, 구두 컴퓨터, 의류 컴퓨터 및 기타 착용식 컴퓨터와 같은 사람에 의해 착용되도록 되어 있는 컴퓨터를 포함할 수 있다. 실시예에서, 예를 들어 모바일 컴퓨팅 장치는 음성 통신 및/또는 데이터 통신뿐만 아니라 컴퓨터 애플리케이션을 실행할 수 있는 스마트폰으로서 구현될 수 있다. 비록 몇몇 실시예가 예로서 스마트폰으로 구현되는 모바일 컴퓨팅 장치로 설명될 수 있지만, 이것은 다른 실시예가 다른 무선 모바일 컴퓨팅 장치를 이용해서도 구현될 수 있다는 점을 알 수 있을 것이다. 실시예는 이와 관련해서 제한되는 것은 아니다.
몇몇 실시예에서, 프로세서(710)는 카메라(722) 및 위성 위치 확인 시스템 센서(720)과 통신할 수 있다. 소프트웨어 및/또는 펌웨어 실시예에서, 프로세서(710)에 연결된 메모리(712)는 도 4, 도 5, 도 6 및 도 9에 도시된 시퀀스를 구현하는 컴퓨터 판독 가능 명령어를 저장할 수 있다.
도 11에 도시된 바와 같이, 장치(800)는 하우징(802), 디스플레이(804), I/O(input/output) 장치(806) 및 안테나(808)를 구비할 수 있다. 장치(800)는 또한 네비게이션 특징(812)을 구비할 수 있다. 디스플레이(804)는 모바일 컴퓨팅 장치에 적합한 정보를 표시하는 임의의 적절한 디스플레이 유닛을 구비할 수 있다. I/O 장치(806)는 모바일 컴퓨팅 장치로 정보를 입력하는 임의의 적절한 I/O 장치를 구비할 수 있다. I/O 장치(806)에 대한 예는 영숫자 키보드, 숫자 키패드, 터치 패드, 입력 키, 버튼, 스위치, 로커 스위치, 마이크로폰, 스피커, 음성 인식 장치 및 소프트웨어 등을 포함할 수 있다. 정보는 또한 마이크로폰을 거쳐 장치(800)로 입력될 수 있다. 그러한 정보는 음성 인식 장치에 의해 디지털화될 수 있다. 실시예는 이와 관련하여 제한되는 것은 아니다.
여러 실시예는 하드웨어 소자, 소프트웨어 소자 또는 둘의 조합을 이용하여 구현될 수 있다. 하드웨어 소자의 예는 프로세서, 마이크로프로세서, 회로, 회로 소자(예를 들어, 트랜지스터, 저항, 캐패시터, 인덕터 등), 집적 회로, ASIC(application specific integrated circuits), PLD(programmable logic devices), DSP(digital signal processors), FPGA(field programmable gate array), 논리 게이트, 레지스터, 반도체 장치, 칩, 마이크로칩, 칩셋 등을 포함할 수 있다. 소프트웨어의 예는 소프트웨어 구성요소, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 머신 프로그램, 운영 시스템 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 방법, 절차, 소프트웨어 인터페이스, API(application program interface), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 기호, 또는 그 임의 조합을 포함할 수 있다. 실시예가 하드웨어 소자 및/또는 소프트웨어 소자를 이용하여 구현되는지의 판정은, 희망하는 산정율, 전력 레벨, 행 허용도, 처리 주기 버젯, 입력 데이터율, 출력 데이터율, 메모리 자원, 데이터 버스 속도 및 기타 설계 또는 성능 제약과 같은 다수의 인자에 따라 변한다.
본 명세서에서 설명하는 그래픽 처리 기술은 다양한 하드웨어 아키텍처로 구현될 수 있다. 예를 들어, 그래픽 기능은 칩셋 내에 통합될 수 있다. 그 대신, 별개의 그래픽 프로세서가 이용될 수 있다. 또 다른 실시예로서, 그래픽 기능은 멀티 코어 프로세서를 포함하는 범용 프로세서에 의해 구현될 수 있다.
본 명세서 전반에 걸친 "하나의 실시예" 또는 "일 실시예"에 대한 언급은, 실시예와 관련하여 설명되는 특정한 특징, 구조 또는 특성은 본 발명 내에 망라되는 적어도 일 실시예에 포함된다는 점을 의미한다. 따라서, "일 실시예" 또는 "일 실시예에서"라는 문구의 형태는 반드시 동일한 실시예를 나타내는 것은 아니다. 또한, 특정 특징, 구조 또는 특성은 설명된 특정 실시예와는 다른 기타 적절한 형태로 시행될 수 있고, 모든 형태는 본 출원의 특허청구범위 내에 포함될 수 있다.
본 발명이 제한된 수의 실시예와 관련하여 설명되었지만, 당업자라면 그로부터 다양한 수정 및 변형을 알 것이다. 첨부된 특허청구범위는 본 발명의 진정한 사상 및 범주 내에서 있는 모든 그러한 수정 및 변형을 포괄하고자 하는 것이다.
12 : OEM 퓨즈 제어기 14 : 온다이 퓨즈 제어기
16 : 시퀀서 20 : JTAG 블록용 레지스터
22 : 개별 퓨즈 버스로 퓨즈 맵핑 24 : 퓨즈 VR
26 : 외부 VR 28 : OEM 퓨즈 모듈
30 : ODP 퓨즈 모듈 32 : 호스트
34 : SEC 버스 36 : JTAG OEM
38 : JTAG 고객 40 : 레지스터
44 : 아비터 46 : 클럭 교차
48 : 레지스터 50 : 퓨즈 RW 상태 머신
52 : 퓨즈 전압 레귤레이터 상태 머신
54 : SPI 마스터 56 : 퓨즈 전압 레귤레이터
58 : 퓨즈 모듈 112 : 퓨즈 어레이
114 : 컬럼 어드레스 회로 116 : 행 어드레스 회로
118 : 감지 증폭기 120 : 제어
710 : 프로세서 712 : 메모리
714 : 저장 장치 715 : 그래픽 서브시스템
716 : 애플리케이션 718 : 무선 장치
720 : 디스플레이 722 : 사용자 인터페이스
730 : 컨텐츠 서비스 장치 740 ; 컨텐츠 배달 장치
770 : 운영 시스템 780 : 배터리
790 : 펌웨어 792 : 펌웨어 갱신 모듈

Claims (25)

  1. 컴퓨터 실행 방법으로서,
    다이(die) 상의 프로그래머를 이용하여 상기 다이 상의 퓨즈 어레이를 프로그래밍하는 단계와,
    적어도 하나의 보수 비트(complement bit)를 포함하는 비트들의 제 1 스트링을 제공하여 퓨즈 상태를 기록하는 단계와,
    상기 퓨즈 어레이 내의 제 1 어드레싱 가능 라인을 따라 상기 제 1 스트링을 저장하고 상기 퓨즈 어레이 내의 제 2 어드레싱 가능 라인을 따라 상기 제 1 스트링의 보수인 제 2 스트링을 상이한 방향으로 저장하여, 상기 제 1 스트링 및 상기 제 2 스트링 중 하나를 상기 퓨즈 어레이의 제 1 방향의 어드레싱 가능 라인에 저장하되 다른 스트링을 상기 퓨즈 어레이의 상기 제 1 방향을 가로지르는 제 2 방향의 어드레싱 가능 라인에 저장하는 단계와,
    상기 제 2 방향의 어드레싱 가능 라인을 판독하지 않고 상기 제 1 방향의 어드레싱 가능 라인의 비트들만을 판독하는 단계와,
    상기 제 2 방향의 어드레싱 가능 라인을 판독하지 않고 상기 제 1 방향의 어드레싱 가능 라인을 판독한 후에 상기 제 1 스트링과 상기 제 2 스트링을 비교하는 단계를 포함하는
    컴퓨터 실행 방법.
  2. 제 1 항에 있어서,
    온 다이 프로그램가능 퓨즈 어레이(on-die programmable fuse array)를 구비하는 제 1 퓨즈 어레이 내의 퓨즈 어드레스를 선택하는 단계와,
    상기 제 1 퓨즈 어레이와 별개로만 액세스할 수 있는 제 2 퓨즈 어레이를 포함시키는 단계를 포함하는
    컴퓨터 실행 방법.
  3. 제 1 항에 있어서,
    복수의 인터페이스 중 하나가 상기 프로그래머에게 신호를 제공하는 것을 가능하게 하는 단계를 포함하는
    컴퓨터 실행 방법.
  4. 제 3 항에 있어서,
    하나보다 많은 인터페이스가 동시에 상기 프로그래머에게 신호를 제공하는 것을 방지하는 단계를 포함하는
    컴퓨터 실행 방법.
  5. 제 3 항에 있어서,
    상기 인터페이스가 상이한 프로그래밍 전압 또는 프로그래밍 지속 기간을 이용하는 것을 가능하게 하는 단계를 포함하는
    컴퓨터 실행 방법.
  6. 삭제
  7. 제 1 항에 있어서,
    저장할 비트를 수신하는 단계와,
    상기 비트로부터 멀티 비트 제 1 스트링을 생성하는 단계를 더 포함하는
    컴퓨터 실행 방법.
  8. 제 7 항에 있어서,
    행을 판독하는 단계와,
    상기 비트를 추출하는 단계와,
    컬럼을 판독하는 단계를 포함하는
    컴퓨터 실행 방법.
  9. 어드레스 라인을 갖는 퓨즈 어레이와,
    적어도 2개의 상이한 상태의 비트 스트링으로서 상기 퓨즈 어레이의 제 1 어드레싱 가능 라인을 따라 값을 저장하고, 상기 제 1 어드레싱 가능 라인에 수직인 상기 퓨즈 어레이의 제 2 어드레싱 가능 라인을 따라 보수 스트링(complement string)을 저장하여, 상기 비트 스트링 및 상기 보수 스트링 중 하나를 상기 퓨즈 어레이의 제 1 방향의 어드레싱 가능 라인에 저장하되 다른 스트링을 상기 퓨즈 어레이의 상기 제 1 방향을 가로지르는 제 2 방향의 어드레싱 가능 라인에 저장하고, 상기 제 2 방향의 어드레싱 가능 라인을 판독하지 않고 상기 제 1 방향의 어드레싱 가능 라인의 비트들만을 판독하고, 상기 제 2 방향의 어드레싱 가능 라인을 판독하지 않고 상기 제 1 방향의 어드레싱 가능 라인을 판독한 후에 상기 비트 스트링과 상기 보수 스트링을 비교하게 하는 제어기를 포함하는
    정보 저장 장치.
  10. 제 9 항에 있어서,
    퓨즈 제조자가 상기 퓨즈 어레이를 프로그래밍하는 것을 가능하게 하는 제 1 퓨즈 제어기와,
    상기 제 1 퓨즈 제어기로부터 격리되며, 사용자가 상기 퓨즈 어레이를 프로그래밍할 수 있게 하는 제 2 퓨즈 제어기를 포함하는
    정보 저장 장치.
  11. 제 10 항에 있어서,
    상기 장치는 저장할 비트를 수신하고 상기 비트로부터 멀티비트 제 1 스트링을 생성하는
    정보 저장 장치.
  12. 제 11 항에 있어서,
    상기 제어기는 상기 퓨즈 어레이의 행을 판독하고, 상기 비트를 추출하고, 상기 퓨즈 어레이의 컬럼을 판독하는
    정보 저장 장치.
  13. 제 12 항에 있어서,
    상기 제어기는 상기 비트와 그 보수를 비교하는
    정보 저장 장치.
  14. 제 13 항에 있어서,
    상기 제어기는 상기 비트와 상기 보수가 코드와 코드 보수(code complement)로서 매칭되지 않는 경우 상기 비트를 거절하는
    정보 저장 장치.
  15. 제 9 항에 있어서,
    상기 제어기는 퓨즈 어드레스를 무작위로 선택하여 퓨즈 감지를 개시하는
    정보 저장 장치.
  16. 제 9 항에 있어서,
    상기 퓨즈 어레이는 온 다이 프로그램가능 퓨즈 어레이인
    정보 저장 장치.
  17. 제 9 항에 있어서,
    온 다이 프로그램이 가능하지 않은 제 2 어레이를 포함하되, 상기 퓨즈 어레이 및 상기 제 2 어레이는 상이한 패스워드를 이용하여 액세스되는
    정보 저장 장치.
  18. 제 9 항에 있어서,
    운영 시스템을 포함하는
    정보 저장 장치.
  19. 제 9 항에 있어서,
    배터리를 포함하는
    정보 저장 장치.
  20. 제 9 항에 있어서,
    펌웨어와, 상기 펌웨어를 업데이트하는 모듈을 포함하는
    정보 저장 장치.
  21. 하나 이상의 비일시적 컴퓨터 판독가능 매체로서,
    온 다이 프로그래머(on-die programmer)를 이용하여 퓨즈 어레이를 프로그래밍하는 단계와,
    적어도 하나의 보수 비트(complement bit)를 포함하는 비트들의 제 1 스트링을 제공하여 퓨즈 상태를 기록하는 단계와,
    상기 퓨즈 어레이 내의 제 1 어드레싱 가능 라인을 따라 상기 제 1 스트링을 저장하고 상기 퓨즈 어레이 내의 제 2 어드레싱 가능 라인을 따라 상기 제 1 스트링의 보수인 제 2 스트링을 상이한 방향으로 저장하여, 상기 제 1 스트링 및 상기 제 2 스트링 중 하나를 상기 퓨즈 어레이의 제 1 방향의 어드레싱 가능 라인에 저장하되 다른 스트링을 상기 퓨즈 어레이의 상기 제 1 방향을 가로지르는 제 2 방향의 어드레싱 가능 라인에 저장하는 단계와,
    상기 제 2 방향의 어드레싱 가능 라인을 판독하지 않고 상기 제 1 방향의 어드레싱 가능 라인의 비트들만을 판독하는 단계와,
    상기 제 2 방향의 어드레싱 가능 라인을 판독하지 않고 상기 제 1 방향의 어드레싱 가능 라인을 판독한 후에 상기 제 1 스트링과 상기 제 2 스트링을 비교하는 단계를 포함하는
    시퀀스를 프로세서가 실행할 수 있게 하는 명령어를 저장하는
    비일시적 컴퓨터 판독 가능 매체.
  22. 제 21 항에 있어서,
    상기 시퀀스는, 온 다이 프로그램가능 퓨즈 어레이를 구비하는 제 1 퓨즈 어레이 내의 퓨즈 어드레스를 선택하게 하고, 상기 제 1 퓨즈 어레이와 별개로만 액세스할 수 있는 제 2 퓨즈 어레이를 포함시키는
    비일시적 컴퓨터 판독가능 매체.
  23. 제 22 항에 있어서,
    상기 시퀀스는 복수의 인터페이스 중 하나가 상기 프로그래머에게 신호를 제공하는 것을 가능하게 하는
    비일시적 컴퓨터 판독가능 매체.
  24. 제 21 항에 있어서,
    상기 시퀀스는 하나보다 많은 인터페이스가 동시에 상기 프로그래머에게 신호를 제공하는 것을 방지하게 하는
    비일시적 컴퓨터 판독가능 매체.
  25. 제 23 항에 있어서,
    상기 시퀀스는 상기 복수의 인터페이스가 상이한 프로그래밍 전압 또는 프로그래밍 지속 기간을 이용하는 것을 가능하게 하는
    비일시적 컴퓨터 판독가능 매체.
KR1020140027400A 2013-03-07 2014-03-07 중복 퓨즈 코딩을 위한 컴퓨터 실행 방법, 정보 저장 장치 및 비일시적 컴퓨터 판독 가능 매체 KR101852986B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/788,009 US9472302B2 (en) 2013-03-07 2013-03-07 Redundant fuse coding
US13/788,009 2013-03-07

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020160026316A Division KR20160032061A (ko) 2013-03-07 2016-03-04 중복 퓨즈 코딩

Publications (2)

Publication Number Publication Date
KR20140110797A KR20140110797A (ko) 2014-09-17
KR101852986B1 true KR101852986B1 (ko) 2018-06-04

Family

ID=51487613

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020140027400A KR101852986B1 (ko) 2013-03-07 2014-03-07 중복 퓨즈 코딩을 위한 컴퓨터 실행 방법, 정보 저장 장치 및 비일시적 컴퓨터 판독 가능 매체
KR1020160026316A KR20160032061A (ko) 2013-03-07 2016-03-04 중복 퓨즈 코딩

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020160026316A KR20160032061A (ko) 2013-03-07 2016-03-04 중복 퓨즈 코딩

Country Status (2)

Country Link
US (1) US9472302B2 (ko)
KR (2) KR101852986B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018044755A1 (en) * 2016-08-29 2018-03-08 Skyworks Solutions, Inc. Fuse state sensing circuits, devices and methods
EP4022614A4 (en) * 2019-08-31 2023-08-30 Cryptography Research, Inc. DIRECT ACCESS

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090141573A1 (en) * 2007-11-30 2009-06-04 Taiwan Semiconductor Manufacturing Co., Ltd. System and Method for Better Testability of OTP Memory
US20110012906A1 (en) * 2005-05-30 2011-01-20 Renesas Electronics Corporation Semiconductor integrated circuit device for driving liquid crystal display
US20110141791A1 (en) * 2007-03-23 2011-06-16 Sigmatel, Inc. System and method to control one time programmable memory

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2773271B2 (ja) * 1989-07-26 1998-07-09 日本電気株式会社 半導体記憶装置
JPH03104097A (ja) * 1989-09-18 1991-05-01 Fujitsu Ltd 半導体記憶装置
JP2922060B2 (ja) * 1992-07-27 1999-07-19 富士通株式会社 半導体記憶装置
JPH0817197A (ja) * 1994-06-30 1996-01-19 Fujitsu Ltd 半導体記憶装置
US6205515B1 (en) * 1998-03-16 2001-03-20 Winbond Electronic Corporation Column redundancy circuitry with reduced time delay
JP2007257791A (ja) * 2006-03-24 2007-10-04 Fujitsu Ltd 半導体記憶装置
US8122307B1 (en) * 2006-08-15 2012-02-21 Synopsys, Inc. One time programmable memory test structures and methods
US8781111B2 (en) * 2007-07-05 2014-07-15 Broadcom Corporation System and methods for side-channel attack prevention
JP5032290B2 (ja) * 2007-12-14 2012-09-26 株式会社東芝 不揮発性半導体記憶装置
EP2350910B1 (en) * 2008-11-24 2018-07-25 Certicom Corp. System and method for hardware based security
US9003246B2 (en) * 2012-09-29 2015-04-07 Intel Corporation Functional memory array testing with a transaction-level test engine

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110012906A1 (en) * 2005-05-30 2011-01-20 Renesas Electronics Corporation Semiconductor integrated circuit device for driving liquid crystal display
US20110141791A1 (en) * 2007-03-23 2011-06-16 Sigmatel, Inc. System and method to control one time programmable memory
US20090141573A1 (en) * 2007-11-30 2009-06-04 Taiwan Semiconductor Manufacturing Co., Ltd. System and Method for Better Testability of OTP Memory

Also Published As

Publication number Publication date
US20140254233A1 (en) 2014-09-11
KR20140110797A (ko) 2014-09-17
US9472302B2 (en) 2016-10-18
KR20160032061A (ko) 2016-03-23

Similar Documents

Publication Publication Date Title
US11809335B2 (en) Apparatuses and methods for securing an access protection scheme
CN104050416B (zh) 显示表面的安全绘制
JP5840712B2 (ja) オンダイのプログラム可能なヒューズ
US11706199B2 (en) Electronic device and method for generating attestation certificate based on fused key
CA3008571C (en) System for and method of authenticating a user on a device
CN107766727A (zh) 用于允许对错误数据进行访问的装置及方法
US20200110906A1 (en) Encryption circuit for performing virtual encryption operations
EP2775403B1 (en) Randomization of access to entire memory contents of a fuse array
KR101852986B1 (ko) 중복 퓨즈 코딩을 위한 컴퓨터 실행 방법, 정보 저장 장치 및 비일시적 컴퓨터 판독 가능 매체
CN104461977B (zh) 记忆卡存取装置、其控制方法与记忆卡存取系统
US20150347364A1 (en) Highlighting input area based on user input
CN104054049A (zh) 减少由cpu执行以便复制源数据从而实现对源数据的并行处理的读/写操作的数量
TW202134974A (zh) 跨境支付方法、裝置、設備及系統
US9292713B2 (en) Tiered access to on chip features
US20120144206A1 (en) Information processing apparatus, removable storage device, information processing method, and information processing system
US8971137B2 (en) Bit based fuse repair
CN107025392B (zh) 基于使用的认证系统
CN107483534A (zh) 一种业务处理的方法及装置
CN106201930A (zh) 一种设备端口确定装置、终端及方法
CN109634560A (zh) 随机数生成方法、装置及存储介质
CN114254574B (zh) 安全芯片设计方法和装置
KR20200126792A (ko) 큐알 코드를 포함하는 카드 및 큐알 코드에 수록된 정보를 읽어 들이는 개인 휴대 단말기

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
A107 Divisional application of patent
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2016101001401; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20160304

Effective date: 20171212

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant