To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure no-reply@cambridge.org
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
A computer instruction set defines the correct execution of a program as the instructions processed one after another – that is, sequentially (see Chapter 2). This sequential abstraction enables composition of arithmetic operations (add, xor), operations on memory (state), and also grants extraordinary power to branch instructions that compose blocks of instructions conditionally. In this chapter, we explore the central importance of the sequential abstraction for managing the complexity of large-scale software and hardware systems. Subsequently, we consider creative techniques that both preserve the illusion of sequence and allow the processor implementation to increase the speed of program progress. These techniques are known as instruction-level parallelism (ILP), and accelerate program execution by executing instructions in a program in pipelined (overlapped), out-of-order, and even speculative fashion. Understanding ILP provides a perspective on how commercial processors really execute programs – far different from the step-by-step recipe of the sequential abstraction.
The topics discussed in the previous chapter have in common that they all relate to the relationship between the organization and its member states, and therefore come within the purview of functionalist theory. This makes eminent sense: the law of international organizations has always been conceived (if conceived in theoretical terms to begin with) as having something to do with the links between the organization and its member states: those members set up their organizations for certain purposes, and create the legal environment to help the organization realize its functions: they provide them with powers, grant privileges and immunities, and often pay a membership contribution.
Article 33(1) of the UN Charter lists the various methods of peaceful settlement. The methods listed are not set out in any order of priority, but the first mentioned, negotiation, is the principal means of handling all international disputes.1 In fact in practice, negotiation is employed more frequently than all the other methods put together. Often, indeed, negotiation is the only means employed, not just because it is always the first to be tried and is often successful, but also because states may believe its advantages to be so great as to rule out the use of other methods, even in situations where the chances of a negotiated settlement are slight.
This book is for the growing community of scientists and even engineers who use computing and need a scientific understanding of computer architecture – those who view computation as an intellectual multiplier, and consequently are interested in capabilities, scaling, and limits, not mechanisms. That is, the scientific principles behind computer architecture, and how to reason about hardware performance for higher-level ends. With the dramatic rise of both data analytics and artificial intelligence, there has been a rapid growth in interest and progress in data science. There has also been a shift in the center of mass of computer science upward and outward, into a wide variety of sciences (physical, biological, and social), as well as nearly every aspect of society.
The end of Dennard scaling forced a shift to explicit parallelism, and the adoption of multicore parallelism as a vehicle for performance scaling (see Chapter 3, specifically Section 3.3.4). Even with multicore, the continued demand for both higher performance and energy efficiency has driven a growing interest in accelerators. In fact, their use has become so widespread that in many applications effective use of accelerators is a requirement. We discuss why accelerators are attractive, and when they can deliver large performance benefits. Specifically, we discuss both graphics processing units (GPUs) that aspire to be general parallel accelerators, and other emerging focused opportunities, such as machine learning accelerators. We close with broader discussion of where acceleration is most effective, and where it is not. Software architects designing applications will find this perspective on benefits and challenges of acceleration essential. These criteria will shape both design and evolution, as well as use of customized accelerator architectures in the future.
Before beginning a review of the cultural context for adolescent development, I will touch on “middle childhood” a newly emerging field of study that examines the period between childhood and adolescence. Physiological changes associated with the period between ages seven and twelve include the full maturation of the brain and the onset of adrenarche (increase in the adrenal production of the neurosteroid DHEAS) and a modest increase in growth referred to as the “mid-growth spurt” (Campbell 2011). The complementary cultural components of middle childhood will also be reviewed.
Adolescence is associated with more dramatic physiological change, notably puberty and a rapid growth spurt (Bogin 1994). First menses is often treated as an important milestone, sometimes triggering an elaborate series of rites to mark the change in a young woman’s status. Other physiological markers may be treated as culturally salient. “’Youth’ on Vanatinai begins at about age fourteen, or when the signs of puberty … are visible to onlookers.
Since functionalism has always revolved around the relationships between the international organization and its member states, not much attention has been given to the various types of relations taking place within international organizations. The previous chapter suggested that there is a considerable lack of clarity concerning relations between organs of international organizations – it is a rare organization where checks and balances have been put into place, and, where this has happened, it somehow seems to have occurred by accident rather than by design.
The development of special arrangements to deal with disputes involving international trade began in the middle of the last century and has now produced one of the most effective, as well as one of the most important, systems of international dispute settlement. Thus, in contrast to law of the sea disputes, which we have seen are subject to a system which came into force in 1994, trade disputes can be dealt with through arrangements which have been progressively refined, based on regional as well as general agreements. Since limitations of space preclude examining this complex network in detail, this chapter focuses on the central element and outlines the dispute settlement system of the World Trade Organization (WTO).
The institutional features of the International Court, as we have just seen, exercise a major influence on both the readiness of states to employ international adjudication and the ability of the Court to respond to their requests. However, the judgments which the Court hands down show how it deals with disputes when given the opportunity, and are no less important. This is not the place to describe the Court’s jurisprudence in detail, nor to consider its contribution to the development of international law.1 What is needed therefore is not a survey of the Court’s case law, but rather an indication of what its day-to-day work reveals about the relation between the settlement of disputes and adjudication. The decision itself is a good place to start.
What is computable? There is a practical answer to that question that is defined by the processors and associated memory hierarchies that we have discussed. This state-of-the-art varies over time with the progress of computer architecture and computing technology (as covered in Chapter 3). We refer to this level of computing performance as a general purpose computer. There is also a theoretical answer to that question, which we will address in Section 6.4.
Traditionally, public international law has long been thought of as largely a law of coexistence:1 rules of international law were created, either by custom or by bilateral treaty, for the purpose of delimiting spheres of influence between states, but not much else. For the most part, international law regulated the practical aspects of sovereign states living together on Planet Earth, dealing with such issues as the jurisdiction of states, access to each other’s courts, delimitation of maritime zones, and other similar issues.
In this chapter we review the major dimensions of computer architecture covered, summarizing the high points and providing an overall perspective. Specifically, we highlight how each has shaped computers and computing. Computer architecture continues to advance, so we discuss its ongoing evolution, including the major technology and architecture trends. In many cases, the promise of computing is great, but as with parallelism and accelerators, increasingly its progress comes with compromises. We highlight the critical emerging constraints. Outlining these provides a strategic perspective on likely vectors of change that form a roadmap for the future.