Hacking the Xbox
Hacking the Xbox
Hacking the Xbox
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
46<br />
<strong>Hacking</strong> <strong>the</strong> <strong>Xbox</strong>: An Introduction to Reverse Engineering<br />
The term “dynamic” is applied to RAM that has to be constantly<br />
refreshed in order to preserve <strong>the</strong> integrity of data. For example, <strong>the</strong><br />
RAM used in <strong>the</strong> <strong>Xbox</strong> must have every location read out and written<br />
back about thirty times a second. The performance penalty is not as bad<br />
as it sounds, as special hardware is built into modern DRAM chips that<br />
help optimize <strong>the</strong> process.<br />
The “synchronous” prefix means that inside <strong>the</strong> DRAM, <strong>the</strong> procedure<br />
for data access is broken down into a series of steps. Each of <strong>the</strong>se steps<br />
are independent and can occur in parallel, so that multiple data requests<br />
can be in-flight simultaneously. An external timing signal, known as a<br />
clock, is used to synchronize <strong>the</strong> movement of data access requests<br />
through <strong>the</strong> various steps inside <strong>the</strong> DRAM. As a result, data access<br />
requests flow through each step like water through a pipe, and this<br />
technique is also known as pipelining. Synchronous DRAMs have higher<br />
bandwidth throughput than <strong>the</strong>ir predecessors, because pipelining allows<br />
multiple requests to be processed at once. However, <strong>the</strong> time required<br />
from when an access is first issued to an SDRAM to when <strong>the</strong> data finally<br />
appears on <strong>the</strong> output —<strong>the</strong> access latency — is not improved by<br />
pipelining.<br />
The term “Double Data Rate” refers to <strong>the</strong> way synchronous data is<br />
transferred relative to <strong>the</strong> synchronizing clock. A clock waveform<br />
consists of a repeating pattern of high and low signals. In traditional<br />
systems, data is only transferred on <strong>the</strong> low-to-high transition of a clock<br />
waveform. In a DDR system, data is transferred on both <strong>the</strong> low-to-high<br />
and <strong>the</strong> high-to-low transitions. Thus, for <strong>the</strong> same clock frequency, twice<br />
<strong>the</strong> amount of data can be transferred. The performance mnemonic<br />
quoted by DDR SDRAM vendors, such as DDR266, refers to <strong>the</strong><br />
transfer rate, so <strong>the</strong> actual clock speed is one-half <strong>the</strong> performance<br />
mnemonic, or 133 MHz in this case.<br />
ROM<br />
Every computer needs to have some kind of persistent or non-volatile<br />
memory for storing <strong>the</strong> start-up, or boot, program. The DDR SDRAM<br />
discussed above does not work for this application because all data in a<br />
DDR SDRAM is lost when <strong>the</strong> power is removed. Current versions of<br />
<strong>the</strong> <strong>Xbox</strong> use a FLASH ROM instead to store data that has to persist<br />
even when <strong>the</strong> power is turned off. ROM stands for Read-Only Memory,<br />
and FLASH refers to a specific style of storage element that is electronically<br />
reprogrammable. FLASH style memories are convenient in PCs<br />
because <strong>the</strong>y can be reprogrammed by <strong>the</strong> end user to fix mistakes in <strong>the</strong><br />
boot code. However, in <strong>the</strong> <strong>Xbox</strong>, FLASH ROM programming by <strong>the</strong><br />
end user is purposely disabled. The write signal required for programming<br />
is disconnected by leaving out <strong>the</strong> jumper located on <strong>the</strong> back of<br />
<strong>the</strong> <strong>Xbox</strong> mo<strong>the</strong>rboard at component location R7R4 (see <strong>the</strong> sidebar<br />
titled “Enabling FLASH ROM Programming Hardware” for more<br />
information). In <strong>the</strong> case of <strong>the</strong> <strong>Xbox</strong>, <strong>the</strong> reprogrammability of FLASH<br />
is primarily leveraged as a convenience for Microsoft during development<br />
and production. It is quite likely that in a few months, <strong>the</strong> <strong>Xbox</strong> will