Download as pdf or txt
Download as pdf or txt
You are on page 1of 47

Computer Organization and Design

RISC-V 1st Edition Patterson Solutions


Manual
Visit to download the full and correct content document: https://testbankdeal.com/dow
nload/computer-organization-and-design-risc-v-1st-edition-patterson-solutions-manua
l/
4
Solutions
Chapter 4 Solutions S-3

4.1
4.1.1 The value of the signals is as follows:

Mathematically, the MemRead control wire is a “don’t care”: the instruction


will run correctly regardless of the chosen value. Practically, however,
MemRead should be set to false to prevent causing a segment fault or cache
miss.
4.1.2 Registers, ALUsrc mux, ALU, and the MemToReg mux.
4.1.3 All blocks produce some output. The outputs of DataMemory and Imm
Gen are not used.

4.2 Reg2Loc for ld: When executing ld, it doesn’t matter which value is passed
to “Read register 2”, because the ALUSrc mux ignores the resulting “Read
data 2” output and selects the sign extended immediate value instead.
MemToReg for sd and beq: Neither sd nor beq write a value to the register
file. It doesn’t matter which value the MemToReg mux passes to the register
file because the register file ignores that value.

4.3
4.3.1 25 + 10 = 35%. Only Load and Store use Data memory.
4.3.2 100% Every instruction must be fetched from instruction memory before
it can be executed.
4.3.3 28 + 25 + 10 + 11 + 2 = 76%. Only R-type instructions do not use the Sign
extender.
4.3.4 The sign extend produces an output during every cycle. If its output is not
needed, it is simply ignored.

4.4
4.4.1 Only loads are broken. MemToReg is either 1 or “don’t care” for all other
instructions.
4.4.2 I-type, loads, stores are all broken.

4.5 For context: The encoded instruction is sd x12, 20(x13)


4.5.1
S-4 Chapter 4 Solutions

4.5.2 The new PC is the old PC + 4. This signal goes from the PC, through the
“PC + 4” adder, through the “branch” mux, and back to the PC.
4.5.3 ALUsrc: Inputs: Reg[x12] and 0x0000000000000014; Output:
0x0000000000000014
MemToReg: Inputs: Reg[x13] + 0x14 and <undefined>; output:
<undefined>
Branch: Inputs: PC+4 and 0x000000000000000A
4.5.4 ALU inputs: Reg[x13] and 0x0000000000000014
PC + 4 adder inputs: PC and 4
Branch adder inputs: PC and 0x0000000000000028

4.6
4.6.1 No additional logic blocks are needed.
4.6.2 Branch: false
MemRead: false (See footnote from solution to problem 4.1.1.)
MemToReg: 0
ALUop: 10 (or simply saying “add” is sufficient for this problem)
MemWrite: false
ALUsrc: 1
RegWrite: 1
4.7
4.7.1 R-type: 30 + 250 + 150 + 25 + 200 + 25 + 20 = 700ps
4.7.2 ld: 30 + 250 + 150 + 25 + 200 + 250 + 25 + 20 = 950 ps
4.7.3 sd: 30 + 250 + 150 + 200 + 25 + 250 = 905
4.7.4 beq: 30 + 250 + 150 + 25 + 200 + 5 + 25 + 20 = 705
4.7.5 I-type: 30 + 250 + 150 + 25 + 200 + 25 + 20 = 700ps
Chapter 4 Solutions S-5

4.7.6 950ps

4.8 Using the results from Problem 4.7, we see that the average time per
instruction is
.52*700 + .25*950 + .11*905 + .12 * 705 = 785.6ps
In contrast, a single-cycle CPU with a “normal” clock would require a
clock cycle time of 950.
Thus, the speedup would be 925/787.6 = 1.174

4.9
4.9.1 Without improvement: 950; With improvement: 1250
4.9.2 The running time of a program on the original CPU is 950*n. The running
time on the improved CPU is 1250*(0.95)*n = 1187.5. Thus, the “speedup”
is 0.8. (Thus, this “improved” CPU is actually slower than the original).
4.9.3 Because adding a multiply instruction will remove 5% of the instructions,
the cycle time can grow to as much as 950/(0.95) = 1000. Thus, the time
for the ALU can increase by up to 50 (from 200 to 250).

4.10
4.10.1 The additional registers will allow us to remove 12% of the loads and
stores, or (0.12)*(0.25 + 0.1) = 4.2% of all instructions. Thus, the time to
run n instructions will decrease from 950*n to 960*.958*n = 919.68*n.
That corresponds to a speedup of 950/895.73 = 1.03.
4.10.2 The cost of the original CPU is 4507; the cost of the improved CPU is 4707.
PC: 5
I-Mem: 1000
Register file: 200
ALU: 100
D-Mem: 2000
Sign Extend: 1002
Controls: 10002
adders: 30*24
muxes: 4*102
single gates: 2*1
Thus, for a 3% increase in performance, the cost of the CPU increases by
about 4.4%.
S-6 Chapter 4 Solutions

4.10.3 From a strictly mathematical standpoint it does not make sense to add
more registers because the new CPU costs more per unit of performance.
However, that simple calculation does not account for the utility of the
performance. For example, in a real-time system, a 3% performance may
make the difference between meeting or missing deadlines. In which case,
the improvement would be well worth the 4.4% additional cost.

4.11
4.11.1 No new functional blocks are needed.
4.11.2 Only the control unit needs modification.
4.11.3 No new data paths are needed.
4.11.4 No new signals are needed.

4.12
4.12.1 No new functional blocks are needed.
4.12.2 The register file needs to be modified so that it can write to two registers
in the same cycle. The ALU would also need to be modified to allow read
data 1 or 2 to be passed through to write data 1.
4.12.3 The answer depends on the answer given in 4.12.2: whichever input was
not allowed to pass through the ALU above must now have a data path to
write data 2.
4.12.4 There would need to be a second RegWrite control wire.
4.12.5 Many possible solutions.

4.13
4.13.1 We need some additional muxes to drive the data paths discussed in 4.13.3.
4.13.2 No functional blocks need to be modified.
4.13.3 There needs to be a path from the ALU output to data memory’s write
data port. There also needs to be a path from read data 2 directly to Data
memory’s Address input.
4.13.4 These new data paths will need to be driven by muxes. These muxes will
require control wires for the selector.
4.13.5 Many possible solutions.
Chapter 4 Solutions S-7

4.14 None: all instructions that use sign extend also use the register file, which
is slower.

4.15
4.15.1 The new clock cycle time would be 750. ALU and Data Memory will now
run in parallel, so we have effectively removed the faster of the two (the
ALU with time 200) from the critical path.
4.15.2 Slower. The original CPU takes 950*n picoseconds to run n instructions.
The same program will have approximately 1.35*n instructions when
compiled for the new machine. Thus, the time on the new machine will be
750*1.35n = 1012.5*n. This represents a “speedup” of .93.
4.15.3 The number of loads and stores is the primary factor. How the loads and
stores are used can also have an effect. For example, a program whose
loads and stores tend to be to only a few different address may also run
faster on the new machine.
4.15.4 This answer is a matter of opinion.

4.16
4.16.1 Pipelined: 350; non-pipelined: 1250
4.16.2 Pipelined: 1250; non-pipelined: 1250
4.16.3 Split the ID stage. This reduces the clock-cycle time to 300ps.
4.16.4 35%.
4.16.5 65%

4.17 n + k − 1. Let’s look at when each instruction is in the WB stage. In a


k-stage pipeline, the 1st instruction doesn’t enter the WB stage until cycle
k. From that point on, at most one of the remaining n − 1 instructions is
in the WB stage during every cycle.
This gives us a minimum of k + (n − 1) = n + k − 1 cycles.

4.18 x13 = 33 and x14 = 36

4.19 x15 = 54 (The code will run correctly because the result of the first
instruction is written back to the register file at the beginning of the 5th
cycle, whereas the final instruction reads the updated value of x1 during
the second half of this cycle.)
S-8 Chapter 4 Solutions

4.20 addi x11, x12, 5


NOP
NOP
add x13, x11, x12
addi x14, x11, 15
NOP
add x15, x13, x12

4.21
4.21.1 Pipeline without forwarding requires 1.4*n*250ps. Pipeline with
forwarding requires 1.05*n*300ps. The speedup is therefore (1.4*250)/
(1.05*300) = 1.11.
4.21.2 Our goal is for the pipeline with forwarding to be faster than the
pipeline without forwarding. Let y be the number of stalls remaining
as a percentage of “code” instructions. Our goal is for 300*(1+y)*n
< 250*1.4*n. Thus, y must be less than 16.7%.
4.21.3 This time, our goal is for 300(1 + y)*n < 250(1 + x)*n. This happens when
y < (250x − 50)/300.
4.21.4 It cannot. In the best case, where forwarding eliminates the need for
every NOP, the program will take time 300*n to run on the pipeline with
forwarding. This is slower than the 250*1.075*n required on the pipeline
with no forwarding.
4.21.5 Speedup is not possible when the solution to 4.21.3 is less than 0. Solving
0< (250x − 50)/300 for x gives that x must be at least 0.2.
4.22
4.22.1 Stalls are marked with **:
sd x29, 12(x16) IF ID EX ME WB
ld x29, 8(x16) IF ID EX ME WB
sub x17, x15, x14 IF ID EX ME WB
bez x17, label ** ** IF ID EX ME WB
add x15, x11, x14 IF ID EX ME WB
sub x15,x30,x14 IF ID EX ME WB
4.22.2 Reordering code won’t help. Every instruction must be fetched; thus,
every data access causes a stall. Reordering code will just change the pair
of instructions that are in conflict.
Chapter 4 Solutions S-9

4.22.3 You can’t solve this structural hazard with NOPs, because even the NOPs
must be fetched from instruction memory.
4.22.4 35%. Every data access will cause a stall.
4.23
4.23.1 The clock period won’t change because we aren’t making any changes to
the slowest stage.
4.23.2 Moving the MEM stage in parallel with the EX stage will eliminate the
need for a cycle between loads and operations that use the result of the
loads. This can potentially reduce the number of stalls in a program.
4.23.3 Removing the offset from ld and sd may increase the total number of
instructions because some ld and sd instructions will need to be replaced
with a addi/ld or addi/sd pair.
4.24 The second one. A careful examination of Figure 4.59 shows that the need
for a stall is detected during the ID stage. It is this stage that prevents the
fetch of a new instruction, effectively causing the add to repeat its ID stage.

4.25
4.25.1 … indicates a stall. ! indicates a stage that does not do useful work.

ld x10, 0(x13) IF ID EX ME | WB
ld x11, 8(x13) IF ID EX | ME WB
add x12, x10, x11 IF ID | .. EX ME! WB
addi x13, x13, -16 IF | .. ID EX ME! WB
bnez x12, LOOP | .. IF ID EX ME! WB!
ld x10, 0(x13) IF ID EX ME WB
ld x11, 8(x13) IF ID EX ME WB
add x12, x10, x11 IF ID .. EX | ME! WB
addi x13, x13, -16 IF .. ID | EX ME! WB
bnez x12, LOOP IF | ID EX ME! WB!
Completely busy | N N N N N N N N |

4.25.2 In a particular clock cycle, a pipeline stage is not doing useful work if it
is stalled or if the instruction going through that stage is not doing any
useful work there. As the diagram above shows, there are not any cycles
during which every pipeline stage is doing useful work.
S-10 Chapter 4 Solutions

4.26
4.26.1 // EX to 1st only:
add x11, x12, x13
add x14, x11, x15
add x5, x6, x7

// MEM to 1st only:


ld x11, 0(x12)
add x15, x11, x13
add x5, x6, x7

// EX to 2nd only:
add x11, x12, x13
add x5, x6, x7
add x14, x11, x12

// MEM to 2nd only:


ld x11, 0(x12)
add x5, x6, x7
add x14, x11, x13

// EX to 1st and EX to 2nd:


add x11, x12, x13
add x5, x11, x15
add x16, x11, x12
4.26.2 // EX to 1st only: 2 nops
add x11, x12, x13
nop
nop
add x14, x11, x15
add x5, x6, x7

// MEM to 1st only: 2 stalls


ld x11, 0(x12)
nop
nop
add x15, x11, x13
add x5, x6, x7

// EX to 2nd only: 1 nop


add x11, x12, x13
add x5, x6, x7
nop
add x14, x11, x12
Chapter 4 Solutions S-11

// MEM to 2nd only: 1 nop


ld x11, 0(x12)
add x5, x6, x7
nop
add x14, x11, x13

// EX to 1st and EX to 2nd: 2 nops


add x11, x12, x13
nop
nop
add x5, x11, x15
add x16, x11, x12
4.26.3 Consider this code:

ld x11, 0(x5) # MEM to 2nd --- one stall


add x12, x6, x7 # EX to 1st --- two stalls
add x13, x11, x12
add x28, x29, x30
If we analyze each instruction separately, we would calculate that we need
to add 3 stalls (one for a “MEM to 2nd” and two for an “EX to 1st only”.
However, as we can see below, we need only two stalls:
ld x11, 0(x5)
add x12, x6, x7
nop
nop
add x13, x11, x12
add x28, x29, x30

4.26.4 Taking a weighted average of the answers from 4.26.2 gives 0.05*2 + 0.2*2
+ 0.05*1 + 0.1*1 + 0.1*2 = 0.85 stalls per instruction (on average) for a
CPI of 1.85. This means that 0.85/1.85 cycles, or 46%, are stalls.
4.26.5 The only dependency that cannot be handled by forwarding is from the
MEM stage to the next instruction. Thus, 20% of instructions will generate
one stall for a CPI of 1.2. This means that 0.2 out of 1.2 cycles, or 17%, are
stalls.
4.26.6 If we forward from the EX/MEM register only, we have the following
stalls/NOPs
EX to 1st: 0
MEM to 1st: 2
EX to 2nd: 1
MEM to 2nd: 1
EX to 1st and 2nd: 1
S-12 Chapter 4 Solutions

This represents an average of 0.05*0 + 0.2*2 + 0.05*1 + 0.10*1 + 0.10*1 =


0.65 stalls/instruction. Thus, the CPI is 1.65
IF we forward from MEM/WB only, we have the following stalls/NOPs
EX to 1st: 1
MEM to 1st: 1
EX to 2nd: 0
MEM to 2nd: 0
EX to 1st and 2nd: 1
This represents an average of 0.05*1 + 0.2*1 + 0.1*1 = 0.35 stalls/instruction.
Thus, the CPI is 1.35.
4.26.7

4.26.8 CPI for full forwarding is 1.2


CPI for “time travel” forwarding is 1.0
clock period for full forwarding is 130
clock period for “time travel” forwarding is 230
Speedup = (1.2*130)/ (1*230) = 0.68 (That means that “time travel”
forwarding actually slows the CPU.)
4.26.9 When considering the “EX/MEM” forwarding in 4.26.6, the “EX to 1st”
generates no stalls, but “EX to 1st and EX to 2nd” generates one stall.
However, “MEM to 1st” and “MEM to 1st and MEM to 2nd” will always
generate the same number of stalls. (All “MEM to 1st” dependencies
cause a stall, regardless of the type of forwarding. This stall causes the 2nd
instruction’s ID phase to overlap with the base instruction’s WB phase, in
which case no forwarding is needed.)

4.27
4.27.1 add x15, x12, x11
nop
nop
ld x13, 4(x15)
ld x12, 0(x2)
nop
or x13, x15, x13
nop
nop
sd x13, 0(x15)
Chapter 4 Solutions S-13

4.27.2 It is not possible to reduce the number of NOPs.


4.27.3 The code executes correctly. We need hazard detection only to insert a
stall when the instruction following a load uses the result of the load. That
does not happen in this case.
4.27.4

Because there are no stalls in this code, PCWrite and IF/IDWrite are
always 1 and the mux before ID/EX is always set to pass the control values
through.
(1) ForwardA = X; ForwardB = X (no instruction in EX stage yet)
(2) ForwardA = X; ForwardB = X (no instruction in EX stage yet)
(3) ForwardA = 0; ForwardB = 0 (no forwarding; values taken from
registers)
(4) ForwardA = 2; ForwardB = 0 (base register taken from result of
previous instruction)
(5) ForwardA = 1; ForwardB = 1 (base reguster taken from result of two
instructions previous )
(6) ForwardA = 0; ForwardB = 2 (rs1 = x15 taken from register;
rs2 = x13 taken from result of 1st ld—two instructions ago)
(7) ForwardA = 0; ForwardB = 2 (base register taken from register file.
Data to be written taken from previous instruction)
4.27.5 The hazard detection unit additionally needs the values of rd that comes
out of the MEM/WB register. The instruction that is currently in the ID
stage needs to be stalled if it depends on a value produced by (or forwarded
from) the instruction in the EX or the instruction in the MEM stage. So
we need to check the destination register of these two instructions. The
Hazard unit already has the value of rd from the EX/MEM register as
inputs, so we need only add the value from the MEM/WB register.
No additional outputs are needed. We can stall the pipeline using the three
output signals that we already have.
The value of rd from EX/MEM is needed to detect the data hazard
between the add and the following ld. The value of rd form MEM/WB is
needed to detect the data hazard between the first ld instruction and the
or instruction.
S-14 Chapter 4 Solutions

4.27.6

(1) PCWrite = 1; IF/IDWrite = 1; control mux = 0


(2) PCWrite = 1; IF/IDWrite = 1; control mux = 0
(3) PCWrite = 1; IF/IDWrite = 1; control mux = 0
(4) PCWrite = 0; IF/IDWrite = 0; control mux = 1
(5) PCWrite = 0; IF/IDWrite = 0; control mux = 1

4.28
4.28.1 The CPI increases from 1 to 1.4125.
An incorrectly predicted branch will cause three instructions to be flushed: the
instructions currently in the IF, ID, and EX stages. (At this point, the branch
instruction reaches the MEM stage and updates the PC with the correct next
instruction.) In other words, 55% of the branches will result in the flushing of
three instructions, giving us a CPI of 1 + (1 − 0.45)(0.25)3 = 1.4125. (Just to
be clear: the always-taken predictor is correct 45% of the time, which means,
of course, that it is incorrect 1 − 0.45 = 55% of the time.)
4.28.2 The CPI increases from 1 to 1.3375. (1 + (.25)(1 − .55) = 1.1125)
4.28.3 The CPI increases from 1 to 1.1125. (1 + (.25)(1 − .85) = 1.0375)
4.28.4 The speedup is approximately 1.019.
Changing half of the branch instructions to an ALU instruction reduces
the percentage of instructions that are branches from 25% to 12.5%.
Because predicted and mispredicted branches are replaced equally, the
misprediction rate remains 15%. Thus, the new CPU is 1 + (.125)(1 − .85)
= 1.01875. This represents a speedup of 1.0375 / 1.01875 = 1.0184
4.28.5 The “speedup” is .91.
There are two ways to look at this problem. One way is to look at the
two ADD instruction as a branch with an “extra” cycle. Thus, half of the
branches have 1 extra cycle; 15% of the other half have 1 extra cycles
(the pipeline flush); and the remaining branches (those correctly
predicted) have no extra cycles. This gives us a CPI of 1 + (.5)(.25)*1 +
(.5)(.25)(.15)*1 = 1.14375 and a speedup of 1.0375 / 1.14375 = .91.
We can also treat the ADD instructions as separate instructions. The
modified program now has 1.125n instructions (half of 25% produce
Chapter 4 Solutions S-15

an extra instruction). .125n of these 1.125n instruction (or 11.1%) are


branches. The CPI for this new program is 1 + (.111)(.15)*1 = 1.01665.
When we factor in the 12.5% increase in instructions, we get a speedup of
1.0375 / (1.125 * 1.01665) = .91.
4.28.6 The predictor is 25% accurate on the remaining branches. We know that
80% of branches are always predicted correctly and the overall accuracy is
0.85. Thus, 0.8*1 + 0.2*x = 0.85. Solving for x shows that x = 0.25.
4.29
4.29.1

4.29.2

4.29.3 The first few recurrences of this pattern do not have the same accuracy
as the later ones because the predictor is still warming up. To determine
the accuracy in the “steady state”, we must work through the branch
predictions until the predictor values start repeating (i.e. until the predictor
has the same value at the start of the current and the next recurrence of
the pattern).

4.29.4 The predictor should be an N-bit shift register, where N is the number
of branch outcomes in the target pattern. The shift register should be
initialized with the pattern itself (0 for NT, 1 for T), and the prediction is
always the value in the leftmost bit of the shift register. The register should
be shifted after each predicted branch.
4.29.5 Since the predictor’s output is always the opposite of the actual outcome of
the branch instruction, the accuracy is zero.
4.29.6 The predictor is the same as in part d, except that it should compare its
prediction to the actual outcome and invert (logical NOT) all the bits in
the shift register if the prediction is incorrect. This predictor still always
perfectly predicts the given pattern. For the opposite pattern, the first
prediction will be incorrect, so the predictor’s state is inverted and after
S-16 Chapter 4 Solutions

that the predictions are always correct. Overall, there is no warm-up


period for the given pattern, and the warm-up period for the opposite
pattern is only one branch.
4.30
4.30.1

4.30.2 The Mux that selects the next PC must have inputs added to it. Each input
is a constant address of an exception handler. The exception detectors
must be added to the appropriate pipeline stage and the outputs of these
detectors must be used to control the pre-PC Mux, and also to convert to
NOPs instructions that are already in the pipeline behind the exception-
triggering instruction.

4.30.3 Instructions are fetched normally until the exception is detected.


When the exception is detected, all instructions that are in the pipeline
after the first instruction must be converted to NOPs. As a result, the
second instruction never completes and does not affect pipeline state.
In the cycle that immediately follows the cycle in which the exception
is detected, the processor will fetch the first instruction of the exception
handler.

4.30.4 This approach requires us to fetch the address of the handler from memory.
We must add the code of the exception to the address of the exception
vector table, read the handler’s address from memory, and jump to that
address. One way of doing this is to handle it like a special instruction that
puts the address in EX, loads the handler’s address in MEM, and sets the
PC in WB.

4.30.5 We need a special instruction that allows us to move a value from the
(exception) Cause register to a general-purpose register. We must first
save the general-purpose register (so we can restore it later), load the
Cause register into it, add the address of the vector table to it, use the
result as an address for a load that gets the address of the right exception
handler from memory, and finally jump to that handler.
4.31.1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
li x12, 0 IF ID EX ME WB
jal ENT IF ID .. EX ME WB

bne x12, x13, TOP IF .. ID EX ME WB


slli x5, x12, 3 IF .. ID .. EX ME WB

add x6, x10, x5 IF .. ID EX ME WB


ld x7, 0(x6) IF .. ID .. EX ME WB

ld x29, 8(x6) IF .. ID EX ME WB
sub x30, x7, x29 IF .. ID .. .. EX ME WB

add x31, x11, x5 IF .. .. ID EX ME WB


sd x30, 0(x31) IF .. .. ID .. EX ME WB

addi x12, x12, 2 IF .. ID EX ME WB


bne x12, x13, TOP IF .. ID .. EX ME WB

slli x5, x12, 3 IF .. ID EX ME WB


add x6, x10, x5 IF .. ID .. EX ME WB

ld x7, 0(x6) IF .. ID EX ME WB
ld x29, 8(x6) IF .. ID .. EX ME WB

sub x30, x7, x29 IF .. ID .. EX ME WB


add x31, x11, x5 IF .. ID .. .. EX ME WB

sd x30, 0(x31) IF .. .. ID EX ME WB
addi x12, x12, 2 IF .. .. ID .. EX ME WB

bne x12, x13, TOP IF .. ID EX ME WB


slli x5, x12, 3 IF .. ID .. EX ME WB
S-18 Chapter 4 Solutions

4.31.2 The original code requires 10 cycles/loop on a 1-issue machine (stalls


shown below) and 10 cycles/loop on the 2-issue machine. This gives no
net speedup. (That’s a terrible result considering we nearly doubled the
amount of hardware.) We know that the code takes 10 cycles/iteration
on the 2-issue machine because the first instruction in loop 1 (The slli)
begins execution in cycle 6 and the first instruction in iteration 3 begins
execution in cycle 26, so (26–6)/2 = 10.
li x12,0
jal ENT
TOP:
slli x5, x12, 3
add x6, x10, x5
ld x7, 0(x6)
ld x29, 8(x6)
<stall>
sub x30, x7, x29
add x31, x11, x5
sd x30, 0(x31)
addi x12, x12, 2
ENT:
bne x12, x13, TOP
4.31.3 Here is one possibility:
beqz x13, DONE
li x12, 0
jal ENT
TOP:
slli x5, x12, 3
add x6, x10, x5
ld x7, 0(x6)
ld x29, 8(x6)
addi x12, x12, 2
sub x30, x7, x29
add x31, x11, x5
sd x30, 0(x31)
ENT:
bne x12, x13, TOP
DONE:
If we switch to a “pointer-based” approach, we can save one cycle/loop.
Chapter 4 Solutions S-19

The code below does this:


for (i = 0; i ! = j; i+ = 2) {
*b = *a - *(a+1);
b+=2;
a+=2;
}
bez x13, DONE
li x12, 0
jal ENT
TOP:
ld x7, 0(x10)
ld x29, 8(x10)
addi x12, x12, 2
sub x30, x7, x29
sd x30, 0(x11)
addi x10, x10, 16
addi x11, x11, 16
ENT:
bne x12,x13,TOP
DONE:
4.31.4 Here is one possibility:
beqz x13, DONE
li x12, 0
TOP:
slli x5, x12, 3
add x6, x10, x5
ld x7, 0(x6)
add x31, x11, x5
ld x29, 8(x6)
addi x12, x12, 2
sub x30, x7, x29
sd x30, 0(x31)
bne x12, x13, TOP
DONE:
If we switch to a “pointer-based” approach, we can save one cycle/loop.
S-20 Chapter 4 Solutions

The code below does this:


for (i = 0; i ! = j; i+ = 2) {
*b = *a - *(a+1);
b+=2;
a+=2;
}
beqz x13, DONE
li x12, 0
TOP:
ld x7, 0(x6)
addi x12, x12, 2
ld x29, 8(x6)
addi x6, x6, 16
sub x30, x7, x29
sd x30, 0(x31)
bne x12, x13, TOP
DONE:

4.31.5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
beqz x13, DONE IF ID EX ME WB
li x12, 0 IF ID .. EX ME WB

slli x5, x12, 3 IF .. ID EX ME WB


add x6, x10, x5 IF .. ID .. EX ME WB

ld x7, 0(x6) IF .. ID EX ME WB
add x31, x11, x5 IF .. ID EX ME WB

ld x29, 8(x6) IF ID EX ME WB
addi x12, x12, 2 IF ID EX ME WB

sub x30, x7, x29 IF ID .. EX ME WB


sd x30, 0(x31) IF ID .. .. EX ME WB

bne x12, x13, TOP IF .. .. ID EX ME WB


slli x5, x12, 3 IF .. .. ID .. EX ME WB

add x6, x10, x5 IF .. ID EX ME WB


ld x7, 0(x6) IF .. ID .. EX ME WB

add x31, x11, x5 IF .. ID EX ME WB


ld x29, 8(x6) IF .. ID EX ME WB

addi x12, x12, 2 IF ID EX ME WB


sub x30, x7, x29 IF ID .. EX ME WB

sd x30, 0(x31) IF .. ID EX ME WB
bne x12, x13, TOP IF .. ID EX ME WB

slli x5, x12, 3 IF ID EX ME WB


add x6, x10, x5 IF ID .. EX ME WB

4.31.6 The code from 4.31.3 requires 9 cycles per iteration. The code from 4.31.5
requires 7.5 cycles per iteration. Thus, the speedup is 1.2.
Chapter 4 Solutions S-21

4.31.7 Here is one possibility:


beqz x13, DONE
li x12, 0
TOP:
slli x5, x12, 3
add x6, x10, x5
add x31, x11, x5
ld x7, 0(x6)
ld x29, 8(x6)
ld x5, 16(x6)
ld x15, 24(x6)
addi x12, x12, 4
sub x30, x7, x29
sub x14, x5, x15
sd x30, 0(x31)
sd x14, 16(x31)
bne x12, x13, TOP
DONE:
4.31.8 Here is one possibility:
beqz x13, DONE
li x12, 0
addi x6, x10, 0
TOP:
ld x7, 0(x6)
add x31, x11, x5
ld x29, 8(x6)
addi x12, x12, 4
ld x16, 16(x6)
slli x5, x12, 3
ld x15, 24(x6)
sub x30, x7, x29
sd x30, 0(x31)
sub x14, x16, x15
sd x14, 16(x31)
add x6, x10, x5
bne x12,x13,TOP
DONE:
4.31.9 The code from 4.31.7 requires 13 cycles per unrolled iteration. This is equivalent to 6.5 cycles per
original iteration. The code from 4.30.4 requires 7.5 cycles per unrolled iteration. This is equivalent
to 3.75 cycles per original iteration. Thus, the speedup is 1.73.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
beqz x13, DONE IF ID EX ME WB
li x12, 0 IF ID .. EX ME WB
addi x6, x10, 0 IF .. ID EX ME WB
ld x7, 0(x6) IF .. ID .. EX ME WB
add x31, x11, x5 IF .. ID EX ME WB
ld x29, 8(x6) IF .. ID EX ME WB
addi x12, x12, 4 IF ID EX ME WB
ld x16, 16(x6) IF ID EX ME WB
slli x5, x12, 3 IF ID EX ME WB
ld x15, 24(x6) IF ID EX ME WB
sub x30, x7, x29 IF ID EX ME WB
sd x30, 0(x31) IF ID .. EX ME WB
sub x14, x16, x15 IF .. ID EX ME WB
sd x14, 16(x31) IF .. ID EX ME WB
add x6, x10, x5 IF ID EX ME WB
bne x12,x13,TOP IF ID EX ME WB
ld x7, 0(x6) IF ID EX ME WB
add x31, x11, x5 IF ID EX ME WB
ld x29, 8(x6) IF ID EX ME WB
addi x12, x12, 4 IF ID EX ME WB
ld x16, 16(x6) IF ID EX ME WB
slli x5, x12, 3 IF ID EX ME WB
ld x15, 24(x6) IF ID EX ME WB
sub x30, x7, x29 IF ID EX ME WB
sd x30, 0(x31) IF ID EX ME WB
sub x14, x16, x15 IF ID .. EX ME WB
sd x14, 16(x31) IF .. ID EX ME WB
add x6, x10, x5 IF .. ID EX ME WB
bne x12,x13,TOP IF ID EX ME WB
ld x7, 0(x6) IF ID EX ME WB
Chapter 4 Solutions S-23

4.31.10 Using the same code as in 4.31.8, the new data path provides no net
improvement, because there are no stalls due to structural hazards.

4.32
4.32.1 The energy for the two designs is the same: I-Mem is read, two registers
are read, and a register is written. We have: 140pJ + 2*70pJ + 60j = 340pJ.
4.32.2 The instruction memory is read for all instructions. Every instruction also
results in two register reads (even if only one of those values is actually
used). A load instruction results in a memory read and a register write;
a store instruction results in a memory write; all other instructions result
in at most a single register write. Because the sum of memory read and
register write energy is larger than memory write energy, the worst-case
instruction is a load instruction. For the energy spent by a load, we have:
140pJ + 2*70pJ + 60pJ + 140pJ = 480pJ.
4.32.3 Instruction memory must be read for every instruction. However, we can
avoid reading registers whose values are not going to be used. To do this,
we must add RegRead1 and RegRead2 control inputs to the Registers unit
to enable or disable each register read. We must generate these control
signals quickly to avoid lengthening the clock cycle time. With these new
control signals, a load instruction results in only one register read (we still
must read the register used to generate the address), so our change saves
70pJ (one register read) per load. This is a savings of 70/480 = 14.6%.
4.32.4 jal will benefit, because it need not read any registers at all. I-type
instructions will also benefit because they need only read one register. If
we add logic to detect x0 as a source register, then instructions such as
beqz (i.e. beq x0, …) and li (addi xn, x0, …) could benefit as well.
4.32.5 Before the change, the Control unit decodes the instruction while
register reads are happening. After the change, the latencies of Control
and Register Read cannot be overlapped. This increases the latency of the
ID stage and could affect the processor’s clock cycle time if the ID stage
becomes the longest-latency stage. However, the sum of the latencies for
the register read (90ps) and control unit (150ps) are less than the current
250ps cycle time.
4.32.6 If memory is read in every cycle, the value is either needed (for a load
instruction), or it does not get past the WB Mux (for a non-load instruction
that writes to a register), or it does not get written to any register (all
other instructions, including branches and stalls). This change does not
affect clock cycle time because the clock cycle time must already allow
enough time for memory to be read in the MEM stage. It can affect overall
performance if the unused memory reads cause cache misses.
S-24 Chapter 4 Solutions

The change also affects energy: A memory read occurs in every cycle
instead of only in cycles when a load instruction is in the MEM stage. This
increases the energy consumption by 140pJ during 75% of the 250ps clock
cycles. This corresponds to a consumption of approximately 0.46 Watts
(not counting any energy consumed as a result of cache misses).
4.33
4.33.1 To test for a stuck-at-0 fault on a wire, we need an instruction that puts
that wire to a value of 1 and has a different result if the value on the wire
is stuck at zero.
If the least significant bit of the write register line is stuck at zero, an
instruction that writes to an odd-numbered register will end up writing to
the even-numbered register. To test for this (1) place a value of 10 in x1,
35 in x2, and 45 in x3, then (2) execute add x3, x1, x1. The value of
x3 is supposed to be 20. If bit 0 of the Write Register input to the registers
unit is stuck at zero, the value is written to x2 instead, which means that
x2 will be 40 and x3 will remain at 45.

4.33.2 The test for stuck-at-zero requires an instruction that sets the signal to 1;
and the test for stuck-at-1 requires an instruction that sets the signal to 0.
Because the signal cannot be both 0 and 1 in the same cycle, we cannot
test the same signal simultaneously for stuck-at-0 and stuck-at-1 using
only one instruction.
The test for stuck-at-1 is analogous to the stuck-at-0 test: (1) Place a value
of 10 in x1, 35 in x2, and 45 in x3, then (2) execute add x2, x1, x1.
The value of x2 is supposed to be 20. If bit 0 of the Write Register input
to the registers unit is stuck at 1, the value is written to x3 instead, which
means that x3 will be 40 and x2 will remain at 35.

4.33.3 The CPU is still usable. The “simplest” solution is to re-write the compiler
so that it uses odd-numbered registers only (not that writing compliers is
especially simple). We could also write a “translator” that would convert
machine code; however, this would be more complicated because the
translator would need to detect when two “colliding” registers are used
simultaneously and either (1) place one of the values in an unused register,
or (2) push that value onto the stack.

4.33.4 To test for this fault, we need an instruction for which MemRead is
set to 1, so it has to be ld. The instruction also needs to have branch
set to 0, which is the case for ld. Finally, the instruction needs to have
a different result MemRead is incorrectly set to 0. For a load, setting
MemRead to 0 results in not reading memory. When this happens, the
value placed in the register is “random” (whatever happened to be at
Chapter 4 Solutions S-25

the output of the memory unit). Unfortunately, this “random” value


can be the same as the one already in the register, so this test is not
conclusive.

4.33.5 Only R-type instructions set RegRd to 1. Most R-type instructions


would fail to detect this error because reads are non-destructive—the
erroneous read would simply be ignored. However, suppose we issued this
instruction: add x1, x0, x0. In this case, if MemRead were incorrectly
set to 1, the data memory would attempt to read the value in memory
location 0. In many operating systems, address 0 can only be accessed by
a process running in protected/kernel mode. If this is the case, then this
instruction would cause a segmentation fault in the presence of this error.
Another random document with
no related content on Scribd:
CHAPTER VI
THE SKULL AND BRAIN

Scaphocephaly popularly misinterpreted—Sutures and wormian bones


Dolichocephaly—Tasmanian skulls more globose—Forehead occasionally
well developed—Absence of tubera frontalia—Fronto-squamous articulation—
Occipital peculiarities—Massive skull-walls—Cranial capacity—The brain—
Generally well developed—Important primitive characteristics—Rhinal fissure
—Insertions of neck-muscles in occiput—Atlanto-occipital articulation.

Opinion is often expressed that the Australian has not sufficient


brains to completely fill his brain-box! Such a statement is, of course,
not in accordance with fact. A condition known as scaphocephaly is,
however, not infrequently observed in the Australian skull, which
gives one the impression of insufficient inflation of the cranial vault
as a whole. A sagittal ridge is present which, with a little
exaggeration, might be likened to an inverted boat (Plate V). A
similar frontal ridge is also occasionally observed in the Negroid skull
and some of the fossil calvaria, but rarely in the modern European
and Asiatic races.
This median frontal ridge is not the result of any abnormal
thickening of bone locally, but anthropologists believe it may be
connected with the early fusion of the frontal suture. As a matter of
fact, the frontal suture is extremely rare in adult primitive peoples’
skulls, and so far only three have been recorded in the Australian by
Dr. Ramsay Smith in specimens from the Northern Territory; one
case has been found in the Tasmanian; and one or two in the Torres
Strait Islanders. All the other sutures in the calvarium seem to be
less complicated in the Australian than in the European and other
more highly developed types of man; the most complex is the
lambdoid suture; and it often has one or more small Wormian bones
interposed within its course, which are, in all probability, connected
with the growth of the brain, and with the consequent enlarging
processes, which the enclosing bones have suffered. An os inca is
occasionally seen.
Although scaphocephalic skulls are not rare among the
Australians, we must not overlook the fact that occasionally we find
specimens, dead or alive, exhibiting sagittal curves in no wise behind
those of modern peoples. And this seems to have been even more
conspicuous in the case of the lost Tasmanians.
The Australian skull is remarkably narrow and long, in most
instances dolichocephalic. In the Tasmanians, the parietal portion is
considerably wider in proportion; the whole of that region seems to
be inflated, when compared with the frontal portion. Whereas in the
Australian we noticed a sagittal ridge, a peculiar median sulcus is
usually present in male skulls, running along the line of the sagittal
suture.
There is a remarkable uniformity in the contours of the male
Tasmanian skulls. They resemble the female Australian much more
than they do the male Australian, principally because the adult male
Australian skulls vary so.
We have already referred to the sloping forehead and frontal
region of the Australian skull; such is observed also in the
Tasmanian and, for that matter, in all primitive men whether they be
recent or fossil. But at the same time, one frequently observes crania
of these primitive people in which the contours of the frontals are as
steep as in any average European. The last remark applies
especially to the female skull, which even might occasionally show a
combination of a prominent forehead with a primitive superciliary
ridge. The two conspicuous eminences of the forehead of the
European skull, known as the tubera frontalia, one of which is
situated over either eye-socket, are not developed in the Australian
or Tasmanian.
The frontal bone of the Australian skull often lies in direct contact
with the squamous portion; this is, however, the case in other
primitive races also. The articulation between the bones mentioned
is effected by means of a process which the squamous bone sends
towards the frontal; the actual line of contact measuring several
millimetres. In other instances the connecting process is replaced by
a small epipteric bone. The articulation may occur on one or both
sides of the skull.
The bony tuberosity of the occipital bone, being part of a muscle-
attachment, varies appreciably in its position; its central point is
anthropologically styled the external inion. A similar protuberance on
the inner surface of the bone is the divisional line between the great
and small hemispheres of the brain; it is called the internal inion. The
internal inion is, as a rule, situated lower than the external in the
adult Australian; but in female and immature skulls the two points are
at about the same level.
The angle which is contained by the occipital bone at the inion, in
a sagittal plane, is less in the Australian than in the modern
European skull. Many of the Australian skulls one examines,
therefore, seem to be unusually flattened at the base, below the
inion.
The cranial walls of no other race are so massive as those of the
Australian. It is particularly in the supraorbital and the occipital
regions that the bone is so thick; the thinnest portions lie in the
temporal and lower parietals; these remarks apply principally to the
adult male skulls. The consequent strength of the aboriginal’s skull
has almost become proverbial. Many are the club-duels which tribal
law and honour demand to be fought. Upon these occasions the
head is the mark. But also in the settlement of his domestic affairs,
when a serious offence calls for punishment, the husband selects
the head of his gin for beating with the weighty nulla-nulla. Is it a
wonder, then, that one often finds the skulls of aborigines covered
with dents, which have resulted from such a battering? Occasionally
death might follow such treatment; and a few cases stand on record
of blindness following the destruction of the centre of vision by a
blow from the club. So severe is the impact that often, in the stillness
of night, I have heard the falling of the blows upon a disobedient
gin’s head, although our camp might have been some considerable
distance off.
PLATE V

Wordaman man, profile and full-face.

Note scaphocephaly, great width of nose, and strong naso-labial fold.

This wonderful strength is largely due to the better development of


the compact tissue of the skull-bone, when compared with that of the
European. The external, as well as the internal, laminae of the
cranial wall are thicker than ours, while, on the other hand, the
intermediate layer, known as the diploë, is thinner in the aboriginal’s
skull. This condition serves the double purpose of protecting the
brain against the mechanical injury referred to, as well as against the
powerful rays of a fierce southern sun.
In regard to the cubic capacity of the Tasmanian and Australian
skulls, we might accept as averages for the adult male and female
Australian skulls 1,290 and 1,845 cubic centimeters respectively, and
as similar averages for the Tasmanian, 1,315 and 1,155 respectively.
The individual variations in the adult male Australian skulls range
from 1,630 to 1,040, and in those of the opposite sex from 1,280 to
1,010 cubic centimeters. The corresponding variations in male and
female Tasmanian skulls are from 1,465 to 1,140, and from 1,225 to
1,060 respectively.
There are, however, considerable variations in the capacity of
Australian skulls; many instances may be selected in which the
capacity is quite as good as that of an ordinary European brain-box.
On the other hand, cases have been recorded of capacities not
greater than 940 cubic centimeters in adult female Australian skulls.
The brain of the Australian has not been studied to any
considerable extent. The first impression a layman receives, upon
beholding the brain of an aboriginal, is, perhaps, a little
disappointing. Assuming him to be a man of low intellect, he expects
to find a brain of inferior development. But such is not the case. In
fact, to any but the specialist, there seems nothing to indicate a lowly
intellectual capacity. The number of convolutions is about the same
as one finds in Europeans of average intelligence; but the structure,
as a whole, is, perhaps, a little less complicated and less tortuous
than we are accustomed to see in our own sort. The large cerebral
hemispheres completely cover the cerebellum. Certain features, like
the operculum, are more strongly developed on the left side than the
right.
In some respects the Australian brain preserves important
characteristics, which indicate the genesis of the more modified or
more specialized conditions seen in the brain of modern man. The
length of the hemispheres and the small occipital development are
unquestionably extremely primitive characters, which, among others,
remind us of the common ancestry of man and ape. In the brains of
the more cultured peoples, processes are at work, which are
completely remodelling portions of the important organ, and thereby
making it more and more unlike the anthropoid or simian brain. By
such modifications in the occipital region, the human brain is
gradually ridding itself of a feature strongly developed in the
monkey’s brain, which has been named the sulcus lunatus. German
anthropologists call this sulcus “Affenspalte,” which means “Monkey-
Cleft,” i.e., a cleft or sulcus in the posterior portion of the brain of
primates, which is strongly developed in the monkeys, but
disappearing in the brain of man. In the Australian’s brain, the sulcus
lunatus can often be more or less distinctly discerned, and its
presence there affords us valuable evidence when tracing the
remnants of the sulcus in the brains of other races, including those of
the modern Europeans.
The posterior lip of the sulcus lunatus is occasionally operculated
in the Australian’s brain. In the parieto-occipital region, the outer
convolutions are depressed and covered by an operculum-like flap;
but this condition is also occasionally observed in European
examples.
Another simian feature, rarely seen in European brains, is rather
frequently found in Australian, in the shape of a rhinal fissure. It
should be observed, however, that the European embryo clearly
shows this fissure in the brain as it is developing.
The occipital bone varies in its appearance. The impressions
made upon the surface, where, during the life-time of an individual,
the strong muscles of the neck were attached, are, as a rule, well
developed. The minor posterior-rectus and complexus muscles of
the neck often leave deep hollows in the occipital bone at the points
of their insertions.
A bony process is often noticed in front of the big foramen, which
joins the occipital condyles; this is an atavistic condition, by means of
which an extra articulation is occasionally effected between the
occiput and vertebral column. The condyles vary considerably in
their elevation above the occipital bone. The large foramen is mostly
oval in shape, but often has a little median notch in its posterior
margin.
CHAPTER VII
COLOUR OF ABORIGINAL’S SKIN

Unsuitable nomenclature—Aboriginal of Australia not a “Nigger”—Colour normally


chocolate-brown—Lighter in infancy—Variations of shade due to several
causes—Colour-classification schemes obsolete—Pigmentation very
superficial in aboriginal’s skin—“White blackfellows”—Pigment destroyed by
disease and lesion—Actual colour—Its intensity and distribution—Effect of
environment on aboriginal’s skin colour—Climatic influence.

The Australian aboriginal is popularly spoken of as a blackfellow;


at times one even hears him referred to as a nigger! Strictly
speaking, the former appellation is not in accordance with obvious
fact, and the latter in addition is scientifically grossly incorrect. The
aboriginal is no more black than the average modern European is
white, and, apart from his darker colour, he certainly has not many
negroid features which we do not also possess, at any rate more or
less sporadically. Under normal conditions, the colour of the
Australian is a velvety chocolate-brown, somewhat lighter or more
coppery in the female than in the male. The skin of a newly-born
piccaninny is very much paler, with a distinct tint of fleshy red about
it, which many people maintain reminds one of the skin of young
murines, as it appears before it developes fur. For this reason, too,
the inexperienced observer often accuses an aboriginal mother of
infidelity; the colour of the infant’s skin, when compared with that of
its parent, indeed suggests a mixing of her blood with that of another
lighter coloured race. The child’s skin, however, soon darkens in
colour; and, within a few weeks, attains a shade not appreciably
different from that of the adults of its tribe.
Apparent gradations in colour are occasionally observed among
different members of one and the same tribe. As with ourselves,
circulatory disorders are not absent among the aborigines, and such
materially affect the quality of colour in the aboriginal’s skin. Simple
anaemia, or even a temporary blanching of the tissues, through
nervousness or fright during the time of an examination, will affect
the appearance of the skin. In the same way, full-bloodedness, or a
passing flush, will deepen the shade, the injection of blood into the
underlying tissues being clearly noticeable through the epidermis.
Pathological conditions like jaundice are also frequently developed in
the aborigines, and impart to their skin a sickly ashen hue; in this
case the yellow colour of the conjunctiva usually indicates the
disorder. The likelihood of any such conditions being present should
be carefully investigated before applying the standard colour tables
of modern anthropologists.
The oldest systems of colour-classification divided the races of
man into five groups—the white, the yellow, the red, the brown, and
the black. But nowadays, even the layman knows that such hard and
fast divisions are impossible. We find that among individuals of one
particular race, whatever its so-called, and somewhat arbitrary,
colour might be, there exist noticeable variations in shade. Red
Indians have yellow or brown skins almost as frequently as a
genuine red; the “white” races of Europe often have so dark a
“complexion” that they are in reality brown; and the skin of a negro at
times has a distinctly reddish or brownish hue.
Early anthropologists thought that the “dust or tawny” colour was
due to the accumulation of carbon in the external layers of the
integument. But since the introduction of the microscope, which
made the study of thin sections of human skin under great
magnification possible, it was found that the colour is due to living
cells, which carry pigment in their protoplasm, and are more or less
migratory.
In the Australian aboriginal, these pigment-cells lie quite
superficially in the skin. Some years ago Professor Klaatsch, of
Heidelberg University, when in Australia, managed to obtain the
corpse of an aboriginal, which he consigned to a large tank holding
an ordinary preserving fluid. Hermetically sealing the lid of the tank,
the Professor shipped the specimen to Europe, where it was to be
dissected. Some months later, I joined him at Breslau University, and
together we opened the tank. Imagine our surprise when we beheld
what one might describe as an anthropological contradiction—a
“white blackfellow!” It took us some time to recognize in the form in
front of us that of the aboriginal we had seen in Australia. What had
happened was that, during the continued movement of the
preserving solution during the transport, the superficial layers of the
skin had been removed, and, with them, the colour too. In other
parts, the skin had blistered and become detached, leaving more or
less adherent strips of epidermis in which the colouring matter could
be recognized.
I have seen a similar condition of things in corpses of aborigines,
in the remoter districts of the Australian bush, where the dead are
placed to rest on artificial platforms in the branches of trees. When,
during the processes of decomposition, the skin peels off, and is
washed away by the rain, the corpse assumes a pinkish white
colour, resembling the body of a white man, some time dead. No
doubt it was on this account that, in the early days of European
settlement, it was a general belief among the aborigines that the
white man was one of their own dead warriors returned to life in a
different colour. We have a classical example in the experience of
the escaped convict, William Buckley, who lived for thirty-two years
among the natives of Victoria, the latter regarding him as their dead
chief returned to life transformed. It is quite possible that this belief,
which is so common among the tribes, originated from the fact that
the natives themselves had observed, as Professor Klaatsch and I
did, that the decomposing bodies of their dead might, under certain
conditions, become very much lighter in colour.
Throughout the Northern Kimberley district the natives maintain
that a dead tribesman will “jump up all-the-same whitefellow” in
colour.
A singular case, illustrative of the shallowness of pigmentation in
the epithelium of an aboriginal’s skin, was reported from Canowie
Sheep Station by the late Rev. Tenison Woods. A native, suffering
from an obstinate skin disease, was “dipped,” like a sheep, in a
solution containing soft soap, tobacco, and arsenic, the last-named
in the proportion of one ounce to the gallon of water. The native
became very ill, lost his hair, and his finger and toe-nails. Eventually
he became better, but his skin peeled off. He was then described as
“presenting the appearance of a magpie during the time the process
of decortication was going on.” Finally his skin became “smooth and
as glossy as marble.”
In pemphigoid skin-eruptions, when blister-like bullae develop over
different parts of the body, the lesions left in the skin for a while are
pinkish and unpigmented. Scars resulting from a cut or burn remain
red for a considerable time, but eventually turn the same uniform
colour as the rest of the skin.
Under normal conditions, one may often find patches of pigment
on mucous surfaces of the inner lips and mouth. The pathological
condition known as leucoderma is, on the other hand, rather
frequently observed among the different tribes of Australia. I have
seen natives, both in the north and south of this continent, whose
skin over certain areas was devoid of pigment; the hands and feet
seem particularly prone to be thus affected.
So much for the seat of the pigmentation. If we now enquire into
the actual complexion, or colour-tint, of the aboriginal’s skin, the
question is not so easily satisfied as one might have thought. The
colour is, of course, brown—a soft, velvety brown, like chocolate.
Scientists tell us it is about the same as tint No. 3 of the colour
scheme on Plate III, Notes and Queries on Anthropology, London.
But the matter is not so simple as one might be led to believe. To
begin with, we have not a homogeneous colouration before us. If, for
instance, we wanted to paint a picture of an aboriginal, we would mix
a fundamental chocolate-brown to deck the surface with; to obtain
the shade of the back we should have to mix a blue or green with the
brown; whereas the cheeks and chin would require a yellow or red.
The intensity of pigmentation varies to a noticeable degree; it is
deepest on the back and neck, and along the folds of the skin. The
soles and palms are always very much lighter in colour than the rest
of the body.
Environment plays an important role, because a native’s skin has
the remarkable power of what might be termed complimentary
colour-adaptation, as a result of which a hard and fast definition, or
fixing, of the shade is practically impossible. For this same reason it
is conceivable why the sombre hue of the hunter’s skin becomes
neutralized by the sallowness of the arid Central Australian scrub, as
well as by the deeply-shaded verdure of the tropical jungle. Upon a
clear day, with an open, blue sky, an aboriginal always appears dark
or dingy, while on a dull and cloudy day, his skin is more of a
chocolate-brown; when he is swimming in the open sea, his colour
may even become coppery and seem not much darker than that of a
Javanese.
The adaptable tone-characteristics of their skin are well-known to
the natives themselves, not only while in the hunting field and on the
warpath, but also on the playground. At Opparinna, in the Musgrave
Ranges, children were seen indulging in a game resembling “hide
and seek,” and often, in an endeavour to avoid the keen eye of the
“seeker,” one would duck in amongst the boulders of granite and
imitate the rust-coloured contours of a boulder to perfection.

PLATE VI
1. Wongapitcha woman, wearing “ungwaina” (nose-stick), and fur-string bandeau.

2. Wongapitcha woman, wearing bloodwood seed pendants called “dindula.” Note


“Semitic” nose.

We know that the climate has an important bearing upon the


subject of pigmentation in all races. Most of us have had our faces,
hands, and other exposed parts of our body bronzed when holiday-
making at the seaside. If we come straight from indoor life in the city,
we might, in addition, find our skin develop a badly blistered
condition known as sunburn. Yet the bushman, the coach-driver, or
the sailor, who, by long exposure, has acquired a more or less
permanent tan, can bask with impunity in the severest rays of the
sun.
Exactly the same processes take place in the coloured man’s skin.
When cruising about the north coast, I frequently had occasion to
observe that my Malay crew were more bronzed above than below
the belt. This was obviously caused through continued exposure to
the tropical sun, since during the heat of day they would work, or lie
about on deck, wearing nothing else than a serong hanging from
their waist.
When aborigines are taken from their wild outdoor life, and kept
under European conditions, more or less confined, their skin
becomes unquestionably lighter; this is particularly noticed in their
faces.
These phenomena indicate to us the method Nature adopts in
protecting our skin, and with it our system, against scorching rays of
the sun; and we also realize why it is that the coloured man can
endure the disadvantages of a tropical climate so much better than
we.
The same phenomena might also be made responsible for the
wonderful absence of pigment in the skin of modern white peoples of
European origin. There is no doubt, the great Ice Age and the living
in caves and shelters (and huts) were the essential factors which
ultimately established the “white” skin in man. In this hypothesis, we
naturally assume that our Diluvial or earlier Tertiary ancestor had a
moderately dark-coloured skin, which protected him against the
tropical sun, which Geology has taught us, shone over Europe at the
beginning or middle of that great period.
CHAPTER VIII
THE HAIR

The lanugo—Hairiness of body—Female beards—The hair of the scalp and how it


is worn—Its colour—Aboriginal blondes—Albinism—Erythrism—Fair hair a
likely “throw-back” to prototype—Influences of climate and geological antiquity
—Other instances of fair-haired aborigines—Grey hair—Baldness—The beard
and methods of dressing it.

Let us proceed with a discussion of the aboriginal’s hair. As in the


youthful individuals of most races of man, including the European,
the Australian is born with a rudimentary, short body-hair, known as
the lanugo. This growth covers practically all surfaces of the child’s
figure, but is thickest on the back.
The colour of this infantile coating of hair is not, as one might have
expected, black, but fair, and casts a pretty golden sheen over the
sombre skin. In later adult life this growth of hair becomes stronger,
and darkens to complete blackness. In ripe old age, the hairs turn
grey.
Many of the old men have a remarkable hairiness of the body,
amounting almost to a hypertrichosis. In these cases the hairs are up
to an inch long, and cover especially thickly the back, the chest, the
thighs, and buttocks (Plate VII, 1). Amongst the women quite
pretentious beards are of rather frequent occurrence (Plate III, 2).
With regard to the hair which covers the scalp, we find that, in the
majority of cases, it is wavy. It is by no means uncommon, however,
to find the Australian’s hair distinctly frizzy; straight hair is least
frequently observed. The male aboriginal generally wears his hair in
long loose curls; often these are matted together artificially with
grease and red ochre into long, pendant, sausage-like masses. In
the central region of Australia, the men pull out the hair growing on
the upper portion of the forehead, each hair being removed
separately. A hair-string band is worn over the cleared portion of the
forehead, and this, at the same time, keeps back the locks of hair.
Very often, in the central as well as in the northern districts, the hair
thus tied back is worked up with a pad of emu feathers into a
chignon, which is tied round and round with human hair-string (Plate
IX). The women are frequently asked to cut their hair short, and to
deliver the clippings to their husbands, who work them up into coils
of string, out of which they subsequently fashion hair belts and a
variety of other articles in daily use. Occasionally one sees an
aboriginal whose hair stands about his head after the type of a
Struwwelpeter, or it may hang from the scalp like a mop. The last-
named types were more plentiful on the north coast than in central
Australia, but a number of cases were recorded among the Aluridja
and Wongapitcha.
The men of the same west-central tribes decorate their hair with
wooden pins whose surfaces they cut longitudinally over certain
sections, so that the shavings, which form, curl outwards but still
remain attached to the rod. The ornaments which go by the name of
“elenba” remind one of trimmed skewers occasionally seen in
butcher-shops. One or two of them are worn long at the back of the
head (Plate IX, 2), or a number of them short, as a fringe above the
forehead. The women of the same districts try to make their hair look
attractive by attaching to the tips of the matted locks numerous seed-
capsules of the Bloodwood eucalyptus. The hairs are rammed into
the open ends of the seeds and kept there by small plugs of wood or
blebs of resin. The little ornaments dangle about the forehead and
shoulders and are known as “dindula” The seeds of the Currajong
are similarly used. Vide Plate VI, 2.
The colour of the adult Australian’s hair is almost invariably black,
but often of different intensities over different parts of the scalp.
When a hair is pulled and examined under magnification, the part
which had been embedded in the follicle is not infrequently
discovered to be colourless or brownish.
By far the most remarkable, and genetically perhaps the most
important, subject in connection with the colour of the Australian
aboriginal’s hair is the juvenile blonde. In 1903, I first came across a
number of children of the Ulparidja group of the Wongapitcha, in the
Tomkinson Ranges, who had heads of hair of a flaxen colour. Since
then, I have seen many similar cases among the Aluridja, in the Lilla
Creek district, several Wongapitcha from south of the Musgrave
Ranges, at Ooldea, and a limited number among the western
Arunndta, on the Finke River, south of the MacDonnell Ranges. The
colour of these children’s hair varied from a straw-yellow, through
light brown, to dark brown (Plate X, 1).
It appeared that, towards the age of puberty, the shade became
visibly deeper; after which it gradually changed to dark brown or
black. This change of colour I have recently been able to watch very
closely in the hair of two young gins who have been under daily
observation for over four years.
Among the adults, such blondes are unknown; two or three cases
of brown hair in grown-up persons, however, came under our
observation among the Aluridja, west of the Finke River.
True albinism has not been authoritatively established, as existing
among the Australian aboriginals. The case of a young woman was
reported from the Depôt on the Victoria River, who is said to have
been quite “white,” and to have had “red” eyes. This albino, I was
informed, was photographed by the local constable shortly before
she died in 1921.
Erythrism, too, is practically unknown; the only cases of the latter
on record are four from the Tully and Bloomfield Rivers, discovered
by Dr. Walter Roth. Red hair is, however, not appreciated by the
aborigines, who incline to hold it to ridicule.
PLATE VII

1. Old Yantowannta man, showing a strong growth of hair covering the body.

2. Old Yantowannta man, showing peculiar method of wearing the beard.

When, therefore, we consider the likely significance of fair-haired


aborigines, from an anthropological standpoint, we cannot ignore the
claims of atavism. Noticing the phenomenon so abundantly
developed, as it has been our good fortune recently to record, one is
inclined to behold in it a primitive feature, which was originally typical
of the ancestral hordes from whom the aboriginal Australian has
sprung. This assumption is strengthened by the light colour of the
lanugo regularly observed in the children.
The question arises whether the dark colour of the Australian’s
skin (and hair) is entirely a secondary development due to climatic
influences. The superficial nature of the pigmentation in the
aboriginal’s skin is in support of such reasoning. It is known that the
hair of some Arctic explorers, after a protracted sojourn in the frigid
zones, has turned from dark to fair; and the same has been reported
of alpine guides. We shall see presently that there is evidence of
great antiquity of man in Australia; his occupation of the land dating
back in all probability to the early Tertiary period. Geology teaches us
that the climate has fluctuated considerably since and before that
time. Consequently, it is quite within reason to assume that, in the
earlier days of his racial existence, there may have been no need for
any considerable accumulation of pigment cells within his skin, as a
means of safeguarding his system against a sun, anything like so
severe as is nowadays reigning over Australia. From later Tertiary
times onwards, however, the climate of central and northern
Australia has been continuously hot or tropical.
We are further strengthened in our theory by the fact that the hair
of the Tasmanians is known to have been generally lighter in colour
than that of the Australians. Sydney Hickson even described the
Tasmanian hair as light golden brown in colour. Tasmania has, we
know, since the later Tertiary at all events, enjoyed a decidedly
colder climate than Australia proper.
One point remains unexplained; namely, why the occurrence of
light-coloured hair among Australian children should be
geographically restricted. Apart from the tribal groups in central
Australia, which I have mentioned, I know of no other record except
one by Professor Klaatsch from a coastal district in Queensland.
The hair of an aboriginal turns grey at a riper old age than is the
case of the European’s. It seems, moreover, that the hair of the
women retains its colour longer than that of the men.
Baldness is comparatively rare among the aborigines; only a
limited number of cases have come before the writer’s personal
notice.
The old Arunndta men are very particular about their appearance.
When one is stricken with baldness, he constructs a pad, resembling
a skull cap, out of emu feathers, which he ties on top of his head with
human hair-string and wears regularly to hide the bareness of his
scalp. He refers to this feather-wig as “memba.” Aluridja men adopt a
similar fashion, but call the article “lorngai” (Plate VIII).
The men all over Australia, as a rule, can produce quite comely
beards, but the methods they adopt of dressing them vary according
to locality. In the River Murray and other southern districts, long
square full-beards were the vogue. The Yantowannta and other
tribesmen of the Cooper’s Creek and Lake Eyre region turn the point
of the beard back upon itself into a loop, and, by winding fur-string
around it, keep it fixed in that fashion (Plate VII, 2). North of the
MacDonnell Ranges, and on some of the islands off Arnhem Land,
the older men keep the upper lip clean by pulling out the hairs one
by one. Along the north coast, from the Gulf of Carpentaria to the
Buccaneer Archipelago, the men over a certain age are allowed to
singe off, or shave with a sharp chip of stone or shell, the entire
beard including the upper lip. The women of the King Sound tribes
are required to help the men remove the hairs; a man will lie for
hours, with his head upon his lubra’s lap, whilst she busies herself
pulling the hairs from her husband’s chin. The old men of the
Cambridge Gulf tribe twist each end of the moustache and surround
it with a cylindrical layer of beeswax, from which the tips project on
either side like the hairs of a paint brush. The beard is divided into
two equal bundles of hairs, the ends of both of which are treated in
the same way as the moustache. On some of the islands of the
Buccaneer Archipelago, the men shave the upper portion of the
moustache below the nose, leaving only a narrow fringe of hairs,
immediately above the margin of the upper lip.
CHAPTER IX
LIKELY ORIGIN OF THE AUSTRALIAN
ABORIGINAL

Deductions theoretical—Pre-historic men of Australia—Tennant’s Creek calvarium


—Talgai skull—Other finds—Alterations in world’s ancient geography—
Former land-bridges—Probable home of man in region now occupied by
Indian Ocean—Early migrations—Three principal strains—Negroid—
Mongoloid—Australoid—Tremendous upheavals at close of Triassic Period—
Australia isolated—Early inhabitants unmolested—Primitive Australian
anthropologically related to cultured Caucasian—Survival of the Stone Age in
Australia—Living fossils—Short resumé—The mixing of European with
aboriginal blood—What is a half-caste?

Having satisfied ourselves in regard to some of the principal


somatic characteristics of the Australian aboriginal, we shall proceed
to discuss briefly his likely origin. In the present absence of more
material facts relating to his ancestry, and of a more thorough
comparative knowledge of races in general, we are lamentably
handicapped in this direction, and many of our conclusions are
necessarily theoretical.
So far as possible, we shall take into consideration his present
relationships to other living races and peoples, as well as his
affinities with the ancient hunting peoples, who inhabited various
parts of the world in bygone eras, and are now only known in a
fossilized condition.
This introduces the geological element of time—hundreds of
thousands, yea, millions perhaps, of years have passed since man
left records of his being; definite traces have been found, embedded
in the same deposits as contain the mammoth, on the one hand, and
the Diprotodon, on the other.

You might also like