# US 10,120,597 B2 · Memory chips and data protection methods

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,120,597 B2
- Document ID: US10120597B2
- Status: Granted
- Kind: B2
- Application number: 15/333,004
- Filed: 2016-10-24
- Published: 2017-02-09
- Granted: 2018-11-06
- Earliest claimed: 2014-01-06
- Assignees: VIA Technologies, Inc.
- Applicants: Via Technologies, Inc.
- Inventors: Yao-Shun Hung; Chin-Yin Tsai; Yi-Lin Lai
- Web page: https://patentgrep.com/patent/US10120597B2

## CPC

- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0632: {by initialisation or re-initialisation of storage systems}
- G06F 3/064: {Management of blocks}
- G06F 3/0673: {Single storage device}
- G06F 9/441: {Multiboot arrangements, i.e. selecting an operating system to be loaded}
- G06F 11/073: {in a memory management context, e.g. virtual memory or cache management (memory management G06F12/00; testing of static memory units G11C29/00)}
- G06F 11/0751: {Error or fault detection not based on redundancy (power supply failures G06F1/30; network fault management H04L41/06)}
- G06F 11/076: {by exceeding a count or rate limit, e.g. word- or bit count limit}
- G06F 11/1076: {Parity data used in redundant arrays of independent storages, e.g. in RAID systems}
- G06F 11/1417: {Boot up procedures}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A memory chip coupled to a host includes a memory and a controller. The memory is pre-loaded with a plurality of boot images, wherein the boot images have the same content. The controller is coupled to the memory, and processes data transmissions between the memory chip and the host, wherein the controller further determines whether the memory chip enters a boot mode for the first time, and when the memory chip enters the boot mode for the first time, the controller accesses the memory to obtain a correct boot image from the boot images and transmits the correct boot image to the host. Further, each boot image includes a plurality of data blocks, and the controller loads a plurality of correct data blocks from one or more of the boot images to obtain the correct boot image.

## Claims

### Claim 1

A memory chip, coupled to a host, comprising:
a memory, pre-loading a plurality of boot images, wherein the boot images have the same content; and
a controller, coupled to the memory, processing data transmissions between the memory chip and the host, wherein the controller further determines whether the memory chip enters a boot mode for the first time, and when the memory chip enters the boot mode for the first time, the controller accesses the memory to obtain a correct boot image from the boot images and transmits the correct boot image to the host,
wherein each boot image comprises a plurality of data blocks, the controller loads a plurality of correct data blocks from one or more of the boot images to obtain the correct boot image,
wherein the controller determines whether the memory chip enters the boot mode for the first time according to a first flag, and
wherein the first flag indicates whether the memory stores a plurality of boot images with the same content.

### Claim 2 (depends on 1)

The memory chip as claimed in claim 1, wherein the memory chip is coupled to the host via an interface, the controller determines whether the memory chip enters the boot mode for the first time further according to a waveform of a signal transmitted by the host on the interface, and when the waveform of the signal matches a predetermined waveform and when the first flag is set, the controller determines that the memory chip enters the boot mode for the first time.

### Claim 3 (depends on 1)

The memory chip as claimed in claim 1, wherein when the memory chip enters the boot mode for the first time and when the correct boot image is obtained, the controller clears the first flag.

### Claim 4 (depends on 1)

The memory chip as claimed in claim 1, wherein the controller comprises:
an error detection and correction module, detecting and correcting error bit(s) in the boot images,
wherein during a process of accessing the memory, when the error detection and correction module detects that a number of error bit(s) comprised in one of the data blocks does not exceed a repairable threshold, the data block is regarded as a correct data block.

### Claim 5 (depends on 1)

The memory chip as claimed in claim 1, wherein the controller comprises:
a merge module, merging the correct data blocks of the boot images to form a boot image copy, and storing the boot image copy in the memory.

### Claim 6 (depends on 5)

The memory chip as claimed in claim 5, wherein the controller sets a flag for indicating whether to perform a merge operation after obtaining the correct boot image, and when the memory chip operates in an idle state, the merge module further merges the correct data blocks to form the boot image copy according to the flag, and clears the flag after the boot image copy is formed.

### Claim 7 (depends on 6)

The memory chip as claimed in claim 6, wherein the memory chip is coupled to the host via an interface, and when the interface is idle, the memory operates in the idle state.

### Claim 8

A data protection method, comprising:
pre-loading a plurality of boot images in a memory chip, wherein the boot images have the same content;
determining whether the memory chip enters a boot mode for the first time according to a first flag, wherein the first flag indicates whether the memory chip stores a plurality of boot images with the same content;
obtaining a correct boot image from the boot images when the memory chip enters the boot mode for the first time; and
transmitting the correct boot image to a host coupled to the memory chip,
wherein each boot image comprises a plurality of data blocks, and the step of obtaining the correct boot image from the boot images further comprises:
determining whether the data blocks of one or more of the boot images are correct; and
loading a plurality of correct data blocks from one or more of the boot images to obtain the correct boot image.

### Claim 9 (depends on 8)

The method as claimed in claim 8, wherein the memory chip is coupled to the host via an interface, and when a waveform of a signal transmitted by the host on the interface matches a predetermined waveform and when the first flag is set, the memory chip is determined as entering the boot mode for the first time.

### Claim 10 (depends on 8)

The method as claimed in claim 8, further comprising:
clearing the first flag when the memory chip enters the boot mode for the first time and when the correct boot image is obtained.

### Claim 11 (depends on 8)

The method as claimed in claim 8, wherein the step of determining whether the data blocks of one or more of the boot images are correct further comprises:
detecting a number of error bit(s) comprised in one of the data blocks; and
regarding the data block as a correct data block when the number of error bit(s) comprised in the data block does not exceed a repairable threshold.

### Claim 12 (depends on 8)

The method as claimed in claim 8, further comprising:
merging the correct data blocks of the boot images to form a boot image copy; and
storing the boot image copy in the memory chip.

### Claim 13 (depends on 12)

The method as claimed in claim 12, further comprising:
setting a flag for indicating whether to perform a merge operation after obtaining the correct boot image;
merging the correct data blocks according to the flag when the memory chip operates in an idle state; and
clearing the-flag after the boot image copy is formed.

### Claim 14

A data protection method, comprising:
determining whether a memory chip enters a boot mode;
determining whether the memory chip has pre-loaded a plurality of boot images with the same content according to a first flag, wherein the first flag indicates whether the memory chip stores a plurality of boot images with the same content;
obtaining a correct boot image from the boot images when the memory chip enters the boot mode and has pre-loaded the boot images with the same content; and
transmitting the correct boot image to a host coupled to the memory chip,
wherein each boot image comprises a plurality of data blocks, and the step of obtaining the correct boot image from the boot images further comprises:
determining whether the data blocks of one or more of the boot images are correct; and
loading a plurality of correct data blocks from one or more of the boot images to obtain the correct boot image.
