IEEE Technology and Society Magazine - December 2016 - 78

unintended acceleration, and the possibility that
software was to blame [19]. Based on the statements made by the expert, including those above,
as well as favorable articles in various publications
describing his trial testimony, I expected to find a
convincing case built on compelling evidence that
there was indeed "a systematic software malfunction in the Main CPU" that directly caused the automobile accident. Unfortunately, I found instead a
disappointingly flawed theory of causation that is
not credible. (The National Highway Traffic Safety
Administration [NHTSA] apparently agrees with this
assessment [20].)

Product liability trials involving
embedded software require the same
standard of proof as other civil trials.

Thus, this trial serves as an informative case study
demonstrating how a jury can be led to an apparently
incorrect conclusion about software based on technical
arguments that sound convincing, but which do not
withstand technical scrutiny. And as we become increasingly reliant on embedded software in our daily lives, for
example, with the advent of self-driving cars, trucks, and
automotive "autopilot" features, our legal system is likely
to face this issue with increasing frequency.2
Since my review of the trial materials, my company
has been retained by several automobile manufacturers. Confidentiality agreements prevent me from revealing details about those engagements.

Background
I will refer below to the expert's trial testimony and
slides, which can be found at:
■ http://www.safetyresearch.net/Library/Bookout
_v_Toyota_Barr_REDACTED.pdf ("Testimony")
■ http://www.safetyresearch.net/Library/BarrSlides
_FINAL_SCRUBBED.pdf ("Slides")
The expert concluded that the accident was caused
by the death of a critical task within the engine control
software, which he referred to as "Task X." He testified:
So to a reasonable degree of engineering certainty, it's my opinion that it was more likely than not,
2

It remains to be seen if the new federal safety guidelines for autonomous
vehicles, not yet released at the time of this writing, will impact this issue.
As discussed in [19], stricter automotive safety guidelines are overdue.

78

a task X death, possibly in combination with other
tasks that occurred that day, causing a loss of
throttle control and in [sic] inability to stop the
vehicle's full momentum because of the vacuum
loss. [Testimony, PDF page 192.] See also Testimony, PDF page 187, and Slide 54.
This conclusion does not appear to be supported by
the evidence presented at trial.
Before examining the expert's conclusion in detail,
some background information about Task X, derived from
the above trial materials.3 is required. Also required is
background information, derived from the trial materials,
regarding a fail-safe called the "Brake Echo Check," which
is a key element of the accident theory involving the death
of Task X.
Task X is a periodic task that executes multiple times
per second on the engine control processor (the main
CPU). One of its many responsibilities is to determine
the correct throttle angle setting (how far open the throttle should be) based on how hard the driver is pressing
on the accelerator pedal (as well as other factors).
Therefore, every n ms4 Task X wakes up and, among
other things, determines the current accelerator pedal
position and sets a throttle angle variable accordingly.
The throttle angle variable is then used by another part
of the software to set the throttle to the angle specified
in that variable.
All the tasks running on the main CPU are managed
by a multitasking operating system. The operating system maintains a data structure containing one bit per
task. If the bit is set, the task is alive and is subject to
task scheduling. If the bit is clear, the task is not running and it will not be scheduled for execution. According to the expert, this data structure (as well as the
throttle angle variable) was not protected by software
techniques such as mirroring, or by hardware techniques such as error detection and correction. Therefore, if this data structure became corrupted due to a
software bug or a single event upset, the corruption
would not be detected or corrected.
There is a second processor called the monitor CPU
that executes the Brake Echo Check fail-safe software.
The Brake Echo Check is designed to behave as follows:
If Task X died, and if the driver then stepped on the
brake or released the brake, then about 200 ms later
the Brake Echo Check on the monitor CPU would detect
an inconsistency resulting from the death of Task X on
the main CPU, and would force the throttle to idle.
About 3 s later it would stall the engine. When the throttle is at idle, braking will successfully stop the vehicle.
3

I have not seen Toyota's source code. My descriptions of how Toyota's
software operates are based on the trial materials.
The Slides suggest that Task X runs every 8 ms [Slide 35].

4

IEEE Technology and Society Magazine

∕

DECember 2016


http://www.safetyresearch.net/Library/Bookout http://www.safetyresearch.net/Library/BarrSlides

Table of Contents for the Digital Edition of IEEE Technology and Society Magazine - December 2016

IEEE Technology and Society Magazine - December 2016 - Cover1
IEEE Technology and Society Magazine - December 2016 - Cover2
IEEE Technology and Society Magazine - December 2016 - 1
IEEE Technology and Society Magazine - December 2016 - 2
IEEE Technology and Society Magazine - December 2016 - 3
IEEE Technology and Society Magazine - December 2016 - 4
IEEE Technology and Society Magazine - December 2016 - 5
IEEE Technology and Society Magazine - December 2016 - 6
IEEE Technology and Society Magazine - December 2016 - 7
IEEE Technology and Society Magazine - December 2016 - 8
IEEE Technology and Society Magazine - December 2016 - 9
IEEE Technology and Society Magazine - December 2016 - 10
IEEE Technology and Society Magazine - December 2016 - 11
IEEE Technology and Society Magazine - December 2016 - 12
IEEE Technology and Society Magazine - December 2016 - 13
IEEE Technology and Society Magazine - December 2016 - 14
IEEE Technology and Society Magazine - December 2016 - 15
IEEE Technology and Society Magazine - December 2016 - 16
IEEE Technology and Society Magazine - December 2016 - 17
IEEE Technology and Society Magazine - December 2016 - 18
IEEE Technology and Society Magazine - December 2016 - 19
IEEE Technology and Society Magazine - December 2016 - 20
IEEE Technology and Society Magazine - December 2016 - 21
IEEE Technology and Society Magazine - December 2016 - 22
IEEE Technology and Society Magazine - December 2016 - 23
IEEE Technology and Society Magazine - December 2016 - 24
IEEE Technology and Society Magazine - December 2016 - 25
IEEE Technology and Society Magazine - December 2016 - 26
IEEE Technology and Society Magazine - December 2016 - 27
IEEE Technology and Society Magazine - December 2016 - 28
IEEE Technology and Society Magazine - December 2016 - 29
IEEE Technology and Society Magazine - December 2016 - 30
IEEE Technology and Society Magazine - December 2016 - 31
IEEE Technology and Society Magazine - December 2016 - 32
IEEE Technology and Society Magazine - December 2016 - 33
IEEE Technology and Society Magazine - December 2016 - 34
IEEE Technology and Society Magazine - December 2016 - 35
IEEE Technology and Society Magazine - December 2016 - 36
IEEE Technology and Society Magazine - December 2016 - 37
IEEE Technology and Society Magazine - December 2016 - 38
IEEE Technology and Society Magazine - December 2016 - 39
IEEE Technology and Society Magazine - December 2016 - 40
IEEE Technology and Society Magazine - December 2016 - 41
IEEE Technology and Society Magazine - December 2016 - 42
IEEE Technology and Society Magazine - December 2016 - 43
IEEE Technology and Society Magazine - December 2016 - 44
IEEE Technology and Society Magazine - December 2016 - 45
IEEE Technology and Society Magazine - December 2016 - 46
IEEE Technology and Society Magazine - December 2016 - 47
IEEE Technology and Society Magazine - December 2016 - 48
IEEE Technology and Society Magazine - December 2016 - 49
IEEE Technology and Society Magazine - December 2016 - 50
IEEE Technology and Society Magazine - December 2016 - 51
IEEE Technology and Society Magazine - December 2016 - 52
IEEE Technology and Society Magazine - December 2016 - 53
IEEE Technology and Society Magazine - December 2016 - 54
IEEE Technology and Society Magazine - December 2016 - 55
IEEE Technology and Society Magazine - December 2016 - 56
IEEE Technology and Society Magazine - December 2016 - 57
IEEE Technology and Society Magazine - December 2016 - 58
IEEE Technology and Society Magazine - December 2016 - 59
IEEE Technology and Society Magazine - December 2016 - 60
IEEE Technology and Society Magazine - December 2016 - 61
IEEE Technology and Society Magazine - December 2016 - 62
IEEE Technology and Society Magazine - December 2016 - 63
IEEE Technology and Society Magazine - December 2016 - 64
IEEE Technology and Society Magazine - December 2016 - 65
IEEE Technology and Society Magazine - December 2016 - 66
IEEE Technology and Society Magazine - December 2016 - 67
IEEE Technology and Society Magazine - December 2016 - 68
IEEE Technology and Society Magazine - December 2016 - 69
IEEE Technology and Society Magazine - December 2016 - 70
IEEE Technology and Society Magazine - December 2016 - 71
IEEE Technology and Society Magazine - December 2016 - 72
IEEE Technology and Society Magazine - December 2016 - 73
IEEE Technology and Society Magazine - December 2016 - 74
IEEE Technology and Society Magazine - December 2016 - 75
IEEE Technology and Society Magazine - December 2016 - 76
IEEE Technology and Society Magazine - December 2016 - 77
IEEE Technology and Society Magazine - December 2016 - 78
IEEE Technology and Society Magazine - December 2016 - 79
IEEE Technology and Society Magazine - December 2016 - 80
IEEE Technology and Society Magazine - December 2016 - 81
IEEE Technology and Society Magazine - December 2016 - 82
IEEE Technology and Society Magazine - December 2016 - 83
IEEE Technology and Society Magazine - December 2016 - 84
IEEE Technology and Society Magazine - December 2016 - 85
IEEE Technology and Society Magazine - December 2016 - 86
IEEE Technology and Society Magazine - December 2016 - 87
IEEE Technology and Society Magazine - December 2016 - 88
IEEE Technology and Society Magazine - December 2016 - Cover3
IEEE Technology and Society Magazine - December 2016 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_september2023
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_june2023
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_march2023
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_december2022
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_september2022
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_june2022
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_march2022
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_december2021
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_september2021
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_june2021
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_march2021
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_december2020
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_september2020
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_june2020
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_march2020
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_december2019
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_september2019
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_june2019
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_march2019
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_december2018
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_september2018
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_june2018
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_march2018
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_winter2017
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_fall2017
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_summer2017
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_spring2017
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_winter2016
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_fall2016
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_summer2016
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_spring2016
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_winter2015
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_fall2015
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_summer2015
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_spring2015
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_winter2014
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_fall2014
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_summer2014
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_spring2014
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_winter2013
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_fall2013
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_summer2013
https://www.nxtbook.com/nxtbooks/ieee/technologysociety_spring2013
https://www.nxtbookmedia.com