I'm Susan Collins, the Joan and Sanford Wildean of the Gerald R. Ford School of Public Policy here at the University of Michigan, and I am just thrilled to have all of you with us for our program this afternoon. On behalf of the Ford School community, it is a real pleasure to welcome you here to the Ford School's contribution to Michigan's 2013 symposium in honor of Dr. Martin Luther King, Jr. Today's event is co-sponsored by the Ford School and by the School's Center for Public Policy and Diverse Societies, but planning for the film and the screening and the discussion has really been led by one of our premier research centers, the Center for Local, State, and Urban Policy Issues, Close-Up. And so I'd like to give a very special thanks to the team and the director of Close-Up, Barry Rabe, who have done a really wonderful job planning the event, as you will see, and putting things together. You'll be hearing more from my colleague, Barry Rabe, as after we watch the film, he'll introduce our distinguished guests in more detail, but for now, please simply join me in welcoming first Steve Ford, who is chairman of the Gerald R. Ford Presidential Foundation and son of President Ford. Welcome. We're also very honored to host Judge Willis Ward's grandson, Buzz Thomas, who has spent 14 years in the Michigan legislature and served as Democratic floor leader in the Senate and as Democratic leader in the House. And so welcome, very special welcome to both of you for joining us this afternoon. We have some other special guests with us today, and I'm very pleased that the creators of our documentary could join us. We have the director and producer, Brian Krueger, and writer Buddy Morehouse. So welcome to both of you. Also with us are two of the sports historians that you will see featured in the film. We have journalist and author, John U Bacon, and Greg Dooley, who runs the popular Michigan football blog, mvictors.com. It's really great to see both of you here too, also. I'm delighted that the director of the Gerald R. Ford Presidential Library and Museum, Elaine Didier, could be here to join us. Elaine and her staff have brought a really special treasure for us to have on this afternoon, which you see there on the table. That is one of the footballs that was used in the game around which the black and blue documentary is centered. The 1934 matchup between the Wolverines and Georgia Tech. The football is on loan to the Ford Museum from Susan Marino, the granddaughter of the man who served as the Michigan punter that day, John Rugezi. So thank you very much for sharing that special treasure with us on this occasion this afternoon. I have a special VIP who I'm very pleased to introduce with us. Today we have the person who we have perhaps the most to thank for the fact that on October 20th, we will now know as Willis Ward Day in the state of Michigan. It was an eight-year-old third grader who after seeing black and blue decided that she wanted to do something to honor Willis Ward. She approached the Board of Regents. She traveled to Lansing and eventually her lobbying won the day. And so that very special girl is with us today. Please welcome Jenny, Jenna Urbane. Jenny, do you want to just stand up? It's a special pleasure to have Jenna with us here today. I hope that as you came in, all of you took a button. You'll see many of us who are featuring our special buttons that just arrived today, hot off the press, as a kickoff to our celebrations in 2013 for the centennial of President Ford's birth. We have hosted a number of Ford legacy activities this past fall as we headed into the special centennial year, including the university's tribute to Mrs. Betty Ford and a visit from President Ford's energy ZAR, Frank Zarb, excuse me. Later this semester, we will be welcoming General Brent Scowcroft back to campus who will help us to dedicate a new statue of President Ford here in Wild Hall, and we hope that many of you will come back and join us for that event. Our 2013 commencement speaker will be former Treasury Secretary Paul O'Neill and his visit also will honor the really active living legacy of President Ford here at the school that bears his name. We have a number of other events and activities throughout 2013, and in 2014, the school will celebrate its own centennial, its 100th anniversary, and I encourage you to visit our website or follow us on Twitter for more information about those back-to-back centennials. So please take a button if you have not already. Wear it with pride, I certainly do, for the university's connection with President Ford, and as we help to tell people about the impact and the many ways in which public policy continues to be informed and improved by all of the very many pieces of public policy that he touched. So with that, I'm going to invite you to sit back and enjoy the movie. Afterwards, you will reconvene for the panel discussion. So again, thank you very much for joining us. I'm Barry Rabe, as Susan Collins mentioned earlier. I'm a faculty member here at the Ford School and also direct close-up, the Center for Local State and Urban Policy. And to paraphrase Steve Ford, it's a nice day to have both Buzz and Steve with us. In a moment, I want to introduce them. I want to just begin by offering a word of thanks and just a couple of observations before we invite them to the podium to share some reflections and then open time up for some questions. First of all, a word of thanks. We really have a remarkable group of individuals who have convened here today. This is in effect, to some extent, the family that has come together around this film and is the story that you've just heard begins to reach an ever larger audience. And so to reiterate what Dean Collins said earlier, we're deeply honored to have so many members of this particular community, the black and blue community, with us. And look forward to hearing from a number of them in a moment. I'd also like to thank the members of the Ford School community who helped make this possible. Dean Collins mentioned a number of them. From the standpoint of close-up, I'd like to particularly note the role of Bonnie Roberts, who's done really an extraordinary job in bringing all of this activity together and thank her. Then I'd also like to just share two observations. One is that while the heavy lifting in athletics on this campus is done farther south on State Street, it should be noted that there's a really strong athletic interest within this school, the Gerald Ford School of Public Policy, in ways that might not be fully realized. This is a relatively small college among the colleges and schools that comprise this great university. But through intramural activities, units like the Gerald Ford Superstars, or the Gerald R Superstars, and others often go deep into intramural competition. And if you've ever been around our courtyard when the weather is a little nicer, you often see our students out there playing every game imaginable, often wearing t-shirts, hats, and even bringing athletic equipment that bears the name and likeness of President Ford in a way somewhat comparable to our button. So one word of warning just for any of our athletically-minded students, you can't touch the ball. And as much, and I've had more comments on this today than you would ever imagine when hearing that the ball was coming, you can't take the ball outside and play with it as tempting though it would be. John Bacon talked several times during the film about the tough decision, the tough moral decision that Gerald Ford had to make in this case. And during the last year, I've had the privilege of serving as chair of a faculty, and staff, and student committee convened by Dean Collins to think about ways that we might appropriately celebrate not only the centennial of this school in 2014, but beginning in 2013, the centennial of the birth of Gerald Ford, this being the first in a series of events. I think one of the themes that we'll be talking about certainly today, but in subsequent events, is that that theme that John talked about, hard decisions, hard moral decisions, were evident throughout President Ford's life. The decision to give up legal practice and run for a congressional seat that politically he had realistically no chance of winning, largely driven by his decision to support the Marshall Plan as it was moving forward in Congress. The challenges that a president faces when he must make the decision on whether or not to pardon his predecessor. Under exceedingly controversial circumstances, even though taking that action may end his political career. Decisions on whether to involve the United States formally in the Helsinki Accords, even though that would increase the likelihood of a primary challenge in his effort to seek a full term in office. And the stories go on, even in the post-presidential years, as was noted in the film. The decision of how to constructively engage on the issue of affirmative action at the point that the university that he deeply loved was becoming involved in the affirmative action case in ways that go far beyond and new complexities beyond the Willis Ward story. And so our hope is that this event is the first in a series of events over the course of this year and probably spilling into next year that we do indeed continue to celebrate the legacy of Gerald Ford. And with that, go back to the many, many tough decisions that whether he was a 19-year-old or a 20-year-old at this campus playing football or moving into the presidency or in the latter years of his life, he routinely and repeatedly took on and took on with great, great dignity. Finally, a word of introduction and really welcome. It is often said at events like this that there really is no need for introduction. And I kind of think that's true today. You have the bios before you. You know that Steve Ford and Buzz Thomas have led significant likes of public engagement across sectors, whether it is currently running the Gerald R. Ford Foundation and being actively involved in the lives of all of the institutions that advance the memory of President Ford and help future generations think and reflect upon that light or service in the legislature or in other arenas of politics. Really don't want to review the bios other than to say we are deeply honored and pleased to be able to welcome both of them to share their reflections and thoughts both in comment as they take these chairs and begin to respond to questions and at this time would just ask you to join me in formally welcoming again Steve Ford and then Buzz Thomas to our community and to our state. Steve. Thank you for that introduction. I know I'm going to speak for just a minute up here and then Buzz is going to come up and then we're going to sit down and answer some questions and that's where always the interesting stuff happens when we get to hear what people are thinking. Dean Collins, thank you for doing a great job running the school and putting this program on. Brian, buddy, we were talking in the hall out there a year and a half ago Buzz and I did those interviews and nobody ever had an idea that we were going to end up with such a great film and it just makes people rethink this issue and their lives and it I think speaks to every one of us in a different way. So congratulations to you guys. It's an honor working with both of you. So and young lady, young lady, wow, you got a Willis Ward day. That is so cool and I think you're going to be in politics someday. I just, I have a feeling that you're going to do big things so I congratulate you. I just think that's a neat, neat thing so hats off to you. Let me take a couple of minutes just to give you my reflections on dad and this story and how it affected us. You know, first of all, dad was probably never supposed to be at the University of Michigan. When he got out of high school, it was a depression. They didn't have any money. There was no money to go to school and he was not going to college and his high school principal called them in and said, Jerry, what are you going to do now? You graduated from high school and dad said, well, we don't have any money. It's a depression. Can't afford to go to school and his high school principal said, Jerry, I want you to go one year to the University of Michigan. And he had motives because he wanted dad to play football there. There were no scholarships at that time but he was going to figure out a way to get dad to Michigan so he could play football for the University of Michigan. And dad said, well, we don't have any money. He says, I'll tell you what, I'm going to loan you $100. We're going to do a fundraiser. You're going to be the first recipient of that $100 which will pay for your first year at Michigan. Now, I know it's cost a little more than that now. But back in 1930, 31, you could go to Michigan. It was $100. So they did that. They raised money for dad. That high school principal invested in his life and dad got here and then figured out a way to afford the next three years and went to school here. But he used to tell the story when they dedicated this school that he used to walk across the campus as a young freshman on a cold winter day. Probably not as cold as today, but cold winter day. And he said, there used to be this big empty lot pile of dirt on State Street.  And he said at the dedication he talked about, here I stand, you know, 60, 70 years later and you've built a school with my name on it because one man loaned me $100. That's invested in people's lives. And I think if I were to sum up dad's life, the reason, the way he got to Michigan, the way he got to know your grandfather and how they interacted together, both of them, great gentlemen, honorable gentlemen, was he had great people in his life early on that invested in his life. His parents, his high school football coach, his church pastor, his Boy Scout leader, all those people invested in dad's life and got them here to the University of Michigan and Michigan invested in them and it turned out it was a tremendous story about character and integrity and a story about friendship with your grandfather. I didn't, you know, I didn't know the story about Willis Ward in the field of play and football. The way I knew about your grandfather was at dinner dad would always talk about he was good friends with a guy that beat Jesse Owens. And I knew who Jesse Owens was and so that was a big deal but I'd never really heard the story about the game with Georgia Tech. So that was a big moment for me. Dad was very humble about that story. He was more impressed that his good friend Willis Ward had beat Jesse Owens and that's how he talked about it. Again, if there was one story and when we did the Larry King show, that was kind of what I told Larry King was if there was one story and you said, you can only tell one story about your father's life, what would it be? It would be the Willis Ward story. I think that is the pearl of who dad was. I think that one story resonates and ripples out into every other area, whether it be the Supreme Court case here at the University of Michigan, the law school, I think it ripples out his compassion dealing with the pardon. Parts of that story, the Willis Ward story I see in the fabric of so many other decisions. When he gave the pardon for Richard Nixon, what most people forget is on that same time, same day basically, he wanted to give amnesty to all the draft dodgers in Vietnam that had divided this country in the war. And his feeling for healing of a nation was not just about trying to find grace and forgiveness for Richard Nixon, it was about grace and forgiveness for many other people to bring a nation back together. But the pardon is what got to highlight it wasn't the young men that had to flee and go to Canada to avoid the draft for the Vietnam War. That was a period when dad felt very strongly the whole country was so divided that these acts of grace and mercy needed to happen to bring a nation back together again. They weren't very popular decisions at the time, but that was a fabric of who he was. Let me just close by saying that I was always amazed when I heard that story that I think it was 1961 or 62 before there was a college in the ACC Atlantic Coast Conference. I think it was the University of Maryland in 1962 that had a black player on his team. That was 30 years after the Willis Ward incident. So these two young men, your grandfather and my dad and many other people on that team, as you guys know, dad was not the only one that was fighting to get Willis on the team to play that day. It was 30 years later, University of Maryland before he had a black player. These guys were forward thinking people. And Buzz, I didn't, we didn't know who you were until the vote came up and we were shocked to find out who's this guy, this Democratic Senator from Detroit. And it turns out, you know, to see our next generation get back together and kind of go full circle and keep this going, I think your grandfather and my father would be both, both be very proud. So that's your introduction. Why don't you come up here? Well, thank you, thank you very much, Steve. I couldn't have a, couldn't have a better introduction. Thank you very much to the Ford School for having me here today. Thanks for all of the diligent efforts that went into planning this. You know, when you have a program, you really don't know how long it takes them to do this, but they've been working on this for the past several months. And so your staff really is to be commended. Let me also say to Buddy and Brian, they're not just filmmakers that made a movie and, you know, they've moved on to the next project. They are living and breathing the history and the elegance of Willis Ward. On a couple of days before Christmas, I get a call from Brian. It's like, you know, hey, Willis is turning 100 on December 28th. We're getting together up in Ann Arbor with Buddy and John and Greg. And we're going to toast a drink. It's like, I need you to be there. It's like, I'm sorry, I can't be there. But that's, you know, that's the type of guys that they are. I mean, they're the ones that are still going to Willis' gravesite and making sure that it's cleaned up and that it's looking right and that it's being taken care of. So they really have made themselves just integral parts of the legacy of Willis Ward. And I want to thank them for that. I also want to thank Jenna for her work. It's very difficult lobbying the legislature. There are people that are paid an awful lot to professionally lobby legislators all the time that do not get the success that she had first time out going and having the legislature in a very speedy amount of time pass Willis Ward Day in the state of Michigan. And so, you know, there are very few people that will have that tribute forever. And so we're all very, very grateful to Jenna for the work that she did. And then I also want you to meet someone. The University of Michigan is really lucky that it has another ward that is a student here. Melanie Ward is Willis Ward's great-grand niece, great-niece. We're not exactly sure. But she's a graduating senior here and she's applying to graduate school. I don't know if she's applying to Michigan, but I hear she's a really good student in Michigan. So it would be nice to keep a ward in the tradition. And it's really nice to see Professor Bacon and Greg Dooley. I've not met you, but I read you. And I'm a pin Quaker. And so Ivy League athletics are not like big 10 athletics. I still root for the University of Michigan, so it's really quite a privilege to be around you guys. Like Steve said, I never heard this story from Willis Ward. He didn't talk about this episode in his life. He talked about his friendship with Jerry, who, and you saw in the movie, I didn't know until actually, Willis was dead also, that Jerry was Gerald Ford. And he spoke elegantly of his love of the University of Michigan. So he was never bitter to the point that he didn't respect the education and the opportunity that he was given in life. You'll notice that I call him Willis. I call a lot of folks in my family by their first name. My grandmother was Margaret. I called her Monarchs. I didn't know how to pronounce Margaret. And so you'll have to apologize. Willis Ward was my grandmother's second husband. So I got the benefit of having three grandfathers. Willis was the only one that I ever knew. And I can say that he, in true grace and class, saved her life when they were married in 1970, around that time, absolutely saved her life and became the absolute love of her life. And I think it really was just a marriage made in heaven. He instantly and immediately became the true patriarch of a very proud and fairly prominent family in Detroit. If there's one person that shapes your life that you go to that you have that relative that you just can't wait to see, for me that was Willis Ward. And so I thought I would just share my experiences and my memories of Willis Ward, recognizing that he died when I was 13. But I can say that with some certainty that I was the second person, the second to the last person with him before his casket was closed at Plymouth Church and buried with him is my picture that I had to sneak into his lapel pocket and my grandmother then escorted me out for her private time with him before they sealed his casket. But he was just a larger than life amazing individual. You can see just in terms of physical stature, looking at President Ford and Willis in the movie. They're both strong athletic men. But Willis was that guy that when he walked into a room, the room lit up around him. And that really is an amazing, amazing accomplishment. He was the life of the party, the biggest laugh you could imagine. The best story was always his to be told. As you can see from the picture in the White House, he was an avid smoker. Smoked cigars and later in life didn't really smoke the cigars so he had to switch to pipes. And so I'm the recipient of a box of about 40 chewed up and not on pipes that my grandmother made sure that I had and promised, you know, don't tell your mother because she really doesn't approve of smoking. So you know just one of those crazy imaginative, excellent, excellent people. I still have a tradition to this day that I learned from Willis Ward and it's kind of gross in a way, excuse the lack of eloquence. It's at Thanksgiving. One of the great joys that Willis had at Thanksgiving was taking the really crispy turkey butt part off of the turkey and cutting it and eating that fatty, crispy skin.  That was my, that was one of our special moments together. So he would sneak me in, call me in, boy, come here, and don't tell your grandmother because he wasn't supposed to do it and I'd say, you know, hey, don't tell my mother. And there we would savor those moments of just eating that delicious crispy skin.  But just, you know, those little moments are things that you never forget. The other thing that I never forget about Willis Ward, frankly, is I think that this episode and this time in his life really did instill a sense in him that you had to be excellent and you had to be, as an African American, you had to be more excellent. And so that you had to create a space for yourself where someone couldn't take anything away from you. And so it was always, always instilled in any part of any family discussion that your education and where and what you did and how you prepared yourself needed to be a part of that. And the other big takeaway for me is his sense of loyalty. There was never any question that his friend, his, you know, his lifelong friend was the president of the United States was Gerald Ford.  And it's very simple. It's because what you're supposed to do. Families come together oftentimes in many, you know, odd ways. And sometimes it's just important to remember that families come together and that you stick together and you stay together. You know, I don't know, you know, how, I don't know how I feel necessarily about all of the politics of Gerald Ford. But if you were on a ballot today, he'd get my vote. And that would just be because that's what I'm supposed to do. And I think that that's incredibly important. And you know, as we listen to the politics of today, remembering that loyalty and seeing that elegance of the relationship and the friendship, I think, would serve us very well. So thank you again for having me and I look forward to our question and answer session. Thanks again. We do want to allow time for questions from the audience. But given the fact that we have two people who are absolutely instrumental to this film and telling the story, we wanted to invite Buddy and Brian to respectively ask the first questions. We'd also note that they've graciously provided an autographed poster from some of the principles of the film which we accept and receive with honor. Buddy, the floor is yours if you'd like to ask the first question. I think a microphone is right there. Yes, it's a tad related, but it's something that you told me in Washington that I'm intrigued with. You went to high school at the high school where Remember the Titans was going on at that time. Is that correct? Speak at all to what, maybe relate the film to what was going on at that time with racial relations at high school in blacks and whites. Yes, it's interesting. We grew up outside of Washington, D.C. This is before dad became president. And I'll go back one step further because I think it ties in with what dad wanted for us children. Part of the character of who dad was, I think, was decided or got decided when he was a young man. He had a choice which high school he could go to in Grand Rapids, and he chose South High because it was much more diverse as far as the population of the students. And he wanted to be challenged. And he wanted to learn about the world, and he wanted to be with everybody. And so he asked his father, who was really a stepfather, if he could attend South High and that's where he went to high school. Now, when I went to high school, dad wanted all us kids to go to a public high school. We did. I went to a school, T.C. Williams High School, which was the high school that was, for anybody that remembers, the high school where Remember the Titans, that story took place of trying to integrate an all-white school. I played football there. I wasn't on that team. I was captain of the junior varsity team. But all my friends were on that team that was highlighted in the movie. We went through that. Force busing. All those dad wanted us kids to be part of that. He thought that was part of our education as a citizen. You shouldn't isolate yourself. So yeah, I remember being put into that kind of situation. Force busing. Congress wanted to use our school system before they had force busing in Boston. They could use us as an experiment. They could watch it from across the river and watch in D.C. So we were the force busing before actually Boston was years later. To me, one of the most interesting parts of the film is where John talks about despite what happened to Willis in 1934 and the events of that game, that neither one of them ever lost their love for the University of Michigan. And indeed, like through the years, they even got deeper. And to me, that was pretty amazing, especially given what Willis had gone through and then the stand that your father was willing to take. What do you think it was about their character that allowed them, despite what happened in that game, to never lose their love and even grow their love for this university? Well, I think Willis had a healthy respect for the education that he received and the reputation of the University of Michigan. This is the University of Michigan. And so it did everyone, I think, remembers very fondly most of the experiences that they had in college. I think it also gave him an opportunity to create a very special friendship that was kind of soul defining to who he was. So it was really an inevitable relationship that would exist with him and the University because of that shared experience.  And I think that just the University became Willis Ward. I think it's kind of like a family in that in any family nobody does everything perfectly and you're constantly in a growing motion. Hopefully you're growing towards greater maturity. I think Michigan at that time, both men, your grandfather and my dad understood that it was a growing time for the University of Michigan. And University of Michigan wasn't the only place this was happening all over the country. And so I think both of them had the type of character that had a grace and a forgiveness of we're in it, we're going to learn together, we're going to be better on the other side of it and no doubt that did happen. With that, we'd be happy to take questions. Once you recognize we do have a portable mic and we'll bring it to you. Would anyone like to ask a question of our guests? Back there. Thank you. We all know that there is a physical plaque or something on the track at Michigan commemorating the athletic victories of Jesse Owens. I'm wondering if there's anything physical on Michigan's athletic area or world commemorating Willis Ward. Willis Ward Day is fabulous, but is there anything physical here to say who he was and who he beat? Because Jesse Owens is an Ohio State, I believe. I don't know the answer to that, but if it isn't, we're going to get Jenna to start working on it. Yeah, to my knowledge, there is not. So I know that there are some in this room that are going to be doing some work on changing that and I'd suspect that we'll have some probably willing supporters in this room that might want to pitch in with that. So Jenna, your work's cut out for you. You know, it was interesting when we were talking about how our families came together and again, to me, the other part of this is to now know Buzz and to see our families together the next generation and our parents and your granddad would be so happy with that. Again, I think it was in the nature of these two men that there might be differences politically or things like that, but they knew how to get along and that's an example for all of us today. When you look at what's happening in Washington, D.C., and politics, and these lines in the sand, when dad was a congressman and then president, his best friend was Tip O'Neill, the Democratic Speaker of the House. And Tip O'Neill used to come by our house all the time. Dad and him would fight on the floor of Congress about ideas they would find compromise and then Tip O'Neill would be at our house for dinner or a drink or something like that and there was a respect for each other to find those compromises. I remember there's a great story about dad and Tip O'Neill were on the golf course together playing golf and this is when dad was president. And Tip O'Neill looked over at my father and he said, Jerry, he said, isn't this a great country? We can go out and play golf together, be great friends.  And they just had a wonderful friendship but a respect for each other. So, yeah, it's an interesting time. Well, and, you know, Willis was a Republican, don't make no mistake. He was a Republican. He probably would not like my party affiliation by any stretch. But, you know, just a testament to the family relationship. I recently had a flood in my house and so I had all of my memorabilia, everything that I've stored from my 14 years in office here in Michigan. And I watched it just kind of floating away. So, you know, everything's gone. But Steve mentioned that, you know, he made a point of writing some notes to me along the way as we had these debates and discussions. Just as President Ford and how I actually learned about this, President Ford wrote a note to my grandmother, just reacquainting her and introducing himself and saying how much, you know, it meant to have that relationship with Willis. And that he had heard that she was ill and so he just wanted to wish her well. So the only thing that survived this flood are the notes that Steve sent to me. So, you know, so my remaining legacy of my years in the legislature are Steve Ford's notes to me. So, you know, the Ford's continue to be very special to us. Gentlemen, right here. I'm researching the Senior Honor Society of Michigama. And so I'm writing a history on that. And I'd point out that the students who disrupted the rally, the pro-Willis Ward rally, were actually Michigama members. And they were sent to disrupt the meeting by Yoast because Yoast thought that they were going to have, the students were going to organize a sit-down strike in the football field so that they couldn't play the game. So, and actually the captain of the track team got up and said, you know, you guys don't know this, but Willis Ward doesn't want to play. Well, he was a Michigama member, okay? So, Michigama has a strong connection. Yoast was Michigama, Kipke was Michigama, Eigler, who was chairman of the board of athletics, was Michigama, Rathvin was Michigama. So there's a strong connection there. One question I have is, in the documentary, it says that he went into Kipke's office and he said, I quit. What was Kipke's response?  We don't know what his response was. We know that Gerald Ford eventually then did, in research, and I know that John actually, he might want to address us because he actually interviewed President Ford about this topic. But we know that then he went to Willis Ward, and Willis Ward told him that he wanted him to play in the game and not set out. So, John, I don't know if you want to? My source on this would be John Beehe's great books written 40 years ago, not too great public attention, but they're very well done. In that, he suggests, of course, Kipke tries to talk him out of it with limited success. This is where I think, when you're talking about a conversation between two men that is probably going to last five minutes and it's going to be heated, followed by another one with Willis Ward in a dorm room somewhere, documents only get you so far. And so, my strong hunch there is that Ford is upset. He definitely expressed that willingness to drop out, Kipke is equally upset. He did not want to lose his MVP center, of course, and urged him to stay, and then the final decision was not made according to the records until he talks to Willis Ward, and part of that comes from President Ford himself through my conversation.  One certainty is if Willis Ward did not talk him out of it, I do believe. And this is where I think the courage really is manifest. If you're Jerry Ford and you're 22 years old, and you are there in part due to football and that's paying your bills, you are willing to risk that at that moment, and we all know how the story turned out. It all turns out very happily for all involved ultimately, a judge, a president, et cetera. They knew none of that at that time, and to actually risk the idea of not only losing your place on the team for which you are going to be the MVP, but perhaps you're the money to go to school and then, of course, with it your political career down the road, all that he was willing to put on the table at that moment. And that to me, if that's not courage, then nothing is. So we don't know the exact dialogue of those conversations. We do know that he was willing to risk it all, and he did. I would say this in that knowing Dad and his ability to generate some anger very quickly, it all makes sense that that version is probably the version that happened. Once Dad would calm down, he would have gone to Willis, talked to Willis, things like that, but his mother would tell you that as a young man growing up, that was what she struggled with the most with my dad was his quick temper and making decisions that way. And so, yeah, that all sounds very true. Additional question? Thanks. Just want to make one comment too on the last gentleman's comment that Jerry Ford was actually a proud member of Michigan and he was a part of the football team at Michigan that year. So another interesting wrinkle, I think, to pursue. But one question I have for you through our research of both these great men of Michigan history, we hear about how similar they were in the way they conducted themselves and what they did.  You know, I never got to meet, even though I was there at the White House when Willis Ford came and visited Dad, I didn't ever personally meet him. Again, my reference was that's how Dad lifted him up all the time was he knew the guy that beat Jesse Owens, you know, and we all like to know, think we know somebody famous or has done something kind of neat. And it was interesting to see that that meant so much to Dad that he was friends with this guy who would beat Jesse Owens. I mean, Jesse Owens was a legend. I think you can tell from the pictures when I was watching every time I've seen this film, both men have such big smiles on their face and they look to be very vocal. That's how I know my dad. He loves telling stories and being part of a good story. And that's what I sensed about your grandfather was when they were standing there, they were reminiscing of these great stories to hear you talk about how he was a center of attention because he always had these great stories. I think they shared that and that was not a difference. Yeah, I don't know of any differences. I mean, there was never a crossword mentioned of the president. It was, you know, just my friend, my friend, my friend. You know, all the way down to wearing his Gerald Ford presidential cufflinks that Willis always often wore. So, you know, I can't think of anything different.  Those were two eminently successful men that were that seemed really, really happy to be together, spending some time enjoying each other's company and probably reminiscing. So I found it very interesting that your grandfather went to work for Ford Motor Company and and and sort of an affirmation of action of the time to and then dad to be tied back in with the University of Michigan. Later, a Supreme Court case that involved the firm of the action. And so they seem to have parallel roads together in a lot of different areas. Yeah. Yeah. In fact, Brian, let me in our little history where later in life, Jesse Owens was fairly down on his luck and Willis gave him a job at Ford. Well, I would also like to ask about the role of the president of the university at that time. As we know, at Penn State, both the football coach and the president kind of got caught up in in power politics and doesn't seem like we've not heard from about where our president was at the university at that in in this controversy. You want to have that one, buddy? These are always the fun ones. Thank you. The president at the time was Alexander Ruth, Vin. And you see his name, of course, on campus, although a very good president. He basically ran for cover on this one. Doctored entirely, not unlike a certain Penn State president, which is my next book. Thank you for two presidents. You had to mention one question that I've got to deal with. Unfortunately, he basically avoided the whole subject, which is why one reason why Fielding-Yosz had so much power at that time. There's no question that Fielding-Yosz was running this decision pretty much unilaterally at that time, certainly over the objections of his football coach and with the silence of the president. So the answer is not much. One final question. I know that President Ford used to come visit the football team. When I was a child and he was president, I lived on Dewey Street and the motorcade came in front of my front porch unannounced because he had to be all secret about everything. And I ran down there and I got to watch President Ford come out and bow greet him and then meet with the team. I'm just wondering, did Willis Ward ever, did he maintain any relationship with Michigan football or Michigan track? Did he come talk to athletes ever at Michigan? That's my knowledge. He watched games on Saturdays. That's interesting. I mean, was there a reason for that? Was it was there a wound there that made him not want to come back? And and intermingle the way the president did? Do you think? Yeah, I don't know. There there was one thing that there's so much that we weren't able to include in the film. But Willis Ward continued to, despite what had happened to him, he continued to have a great relationship with the University of Michigan. And one of the things that happened was in 1979, it was the 100th anniversary of Michigan football. And they put together this huge program that took place at Chrysler Arena. And it was actually Millie Schembeckler, who was in charge of the program. And one of the things they did is they got one, they went as far back as they could back to the 1930s. They wanted to get one player for each decade of Michigan football to come and speak at that event to represent Michigan football. The player they got from the 1930s, who came and spoke, was Willis Ward. And I kick one of the great regrets that Brian and I both have is through this because we came to fall so much in love with the character and class and dignity of Willis Ward is that we never had a chance to meet him. And I'm kicking myself because I was a sophomore at Michigan that year and I didn't go to Chrysler Arena. I would have been able to actually see Willis Ward speak that day. But he continued to have a great relationship with him, Michigan. He was inducted in the Michigan Hall of Honor in it was 79 or 80 sometime right before his death. And then we've also heard lots of stories from people who remember going to tailgates at Michigan football games. And Willis was part of the tailgate. And it's kind of like Buzz was talking about. Apparently he was a life of the party at those events as well. OK. You know, dad had a great relationship with Bo and he used to come back and Bo would invite him to lunch with the players. And he would talk to the players afterwards. And he always wanted Bo to bring over the center because dad was a center. He wanted to see how big he was because when when dad played, he was 195 pounds, I think, six one.  I met the center at Michigan this year. He's, you know, six, three, three hundred and forty pounds. And because I don't know what Bo's doing to grow like that. He just was fascinated with how big these football players have gotten. And every time they would play Ohio State, we'd sit with dad and watch that game. And we we were so afraid he was going to call Bo and try to tell him a play or something. You know, that said, dad, just calm down, calm down. And the final tribute to Michigan and particularly Michigan football was when we came back for his funeral in Grand Rapids. We had the funeral at the National Cathedral in Washington, D.C. and we were on Air Force One bringing his casket to Grand Rapids. And the pilot of Air Force One came back to my mother and said, Ms. Ford, would you like us to make one last pass over the stadium, the big house? And I'm going to get tears thinking about it now. But mom had tears in her eyes and she said, Jerry would love that. And they brought Air Force One. A lot of you know that brought Air Force One down. And the problem was it didn't call ahead. And they didn't tell anybody. And so many stories in this town of Austin, they saw this huge 747. It scared the heck out of Dewey Street. I can tell you that. No, they thought, yeah. So it it was a great thing for dad. And we we know he was smiling when that last pass over the big house. So he loved Michigan football. One last comment I would make is that throughout this project, one of the clips that I have, the film clips that I found most interesting is it doesn't appear in the film, but is watching the commercial that the Ford campaign put on all national networks for 30 minutes the night before the 1976 election. At that time, that is what you did. And you threw as much resources as you could and bought 30 minutes of time. It's a fascinating little piece and yet very few people appear in it. There is a Democratic legislator, not Tip O'Neill, but another talking about President Ford. Joe Garagiola, the baseball player, hosts it. It ends with President Ford sitting in a jet talking about what he would like to do in a full term in office if he had been elected. And yet there's one other prominent individual that appears repeatedly through that clip, and that is Willis Ward. And so interesting to think on the eve of the 1976 election, who would be selected to speak? Looking forward, there is indeed much to think about as we continue to reflect and celebrate the life of Gerald Ford going forward this year. And would only note with directors and film writers with us that there is a sequel already in progress without going into too much detail. We'll focus an even greater depth on the life of Willis Ward, to which we can all look forward. You are all cordially invited to join us in the Great Hall for reception, where we invite all of our guests to spend some time. There'll be a couple of photos with those who are allowed to get close to the ball. But before we adjourn for the day, please join me in thanking our welcome panel.


All right, good afternoon. So, today we're talking about multi-level page tables. They're like single-level page tables, except more fun. So first off, it's like, I guess, after the midterm season, so hopefully, since I'm new here, people can give me some feedback since there's probably lots of stuff I can prove yet. A what? It's clickable. It's download the slides. Yeah, so download the slides, click the link. That apparently was the shortest link Google would give me, but I could have done another one. It's posted on Discord too. Yeah, it's posted on Discord. It's clickable if you download the slides. And yeah, that would be much appreciated since I am brand new. Okay, so today also, and it's after the quizzes and the labs, so there's separate sections to give feedback on the labs because I know they're a bit not terribly great, so there's like a lecture half and then a lab half and then like a free form. So, today though, we're talking about page tables and multi-level page tables and how they can save some space for sparse allocations because as we were talking about, even with a 39-bit virtual address, if we have a single-level page table, each process could have a gigabyte page table, which is not great, not gonna work. Yeah, so if we have a 39-bit virtual address and our page size is 4,000, whatever, that means that there have to be, was that 39 minus 12, 21 entries? Or no, more than that. All right, let's go to, so, okay, that doesn't work. Great, thank you. So, if we have a 39-bit virtual address, well then, we'll have 12 bits for the offset and then we would have 27 bits for the remaining, right? So, and then, so there'd be two to the 27 entries that we'd have to compute and if each entry, so you'd be given the size of an entry, each entry would be eight bytes, so it'd be the same as two to the power of three, so that is equal to two to the power of 30, which is a gigabyte, so it would take a gigabyte if we have a big page table. Okay, I really wish this worked. Okay, so this is what we're gonna do to save space. The trick here is to make each smaller page table fit exactly on a page and then they just, and then an L1, or sorry, an L2 page table would just point to an L1 page table, which would then point to an L0 page table and then we'd translate the address just straight up from there just replacing the virtual page number with the physical page number from the L0 page table to give us a physical address from that virtual address. So, we'll walk through it, yep, sorry? Yeah, EXT. Oh, EXT, it's just extension, so some bits we don't use because this is used space for a 64-bit address and this is only using 39. So, it's just extended use that you can use later. So if you want, you can have more levels of page tables and have like a fourth level if you want and support more virtual addresses. Yep, so sparse allocation just means so with a normal single level page table, you have room to allocate everything, so you could have an entry for everything. For sparse allocations, it means like you can only use like one or two pages at a time, so if you only use one or two pages at a time, you don't need a massive table that's mostly empty. So sparse just means there's not that many allocations. So, for RISC-5, you want each level to occupy one page. So, if we know the size of a page and the size of a page table entry, you can figure out how many entries can fit on a single page. So, in this case, the page size would be 4096, so two to the 12 and each of the entries are eight bytes, so two to the three, so we can have two to the nine entries on each page. Make sense for everyone? So, then the page table entry, if you're in LN, it just points to the next lower level page table, LN minus one, until you eventually get to L0 and then that's your translation and we'll see an example of that. So, you just keep on following them down the levels until L0 and then that's your translation there. Yep, that will just be told to you, so if it's a 64-bit machine, it'll be eight bytes. So, we'll see an example where we do a 32-bit machine so they're gonna be four bytes. So, you can fit more entries. Okay, so this is how you do a translation with just one additional level. So, we'll just consider one virtual address which is 3FFFF008, which if you write it out in binary, it is this or if you separate it out for our L1 index, it would be the nine top bits, so it'd be 111111111 and then the next nine bits are 111111111 and then the last 12 bits which correspond to the offset is 0, 0, 0 and then 1, 0, 0, 0. So, this is a 30-bit virtual address so we're just using two levels of page table. So, if this was only a single level page table and we were supporting a 30-bit virtual address, then our single page table would be two megabytes so it would be 30 minus 12 so we'd have two of the 18 entries there and each entry would be two to the three so that means if we had a single page table for a 30-bit address translation then it would be two megabytes. Everyone good with that? So, back to lecture, the previous lecture but if we only had 30 bits. So, if we had a single level page table it would be two megabytes but to just map a single page because you'd need a whole page table but in this case, if we have multiple levels of page tables then you only need one page for the L1 table and then one page for the L0 table so in total you only need eight kilobytes for the page tables instead of a whole two megabytes and in the worst case, this scheme would actually consume more memory than if you had a single page table if you had to record every single entry because you'd have an L1 page table with 512 L0 page tables which would waste up two megabytes plus the L1 page table. So, let's see that quick. So again, here's what we're considering a 30-bit virtual address and we'd be given the page size four kilobytes. So, for a single page table we'd need two megabytes so it would be the number of virtual pages which in that case, our page size is two to the 12, oops, page size, and then we'd have up to two to the 30 addresses in this so that would be two to the 18 entries we would need. So, we have two to the 18 entries, it's the number of virtual pages we need to keep track of and our page table entry size would be eight bytes so that's where we get our two megabytes so this is two megabytes and I write MIB because it's Megley bytes there's some weird way to say that it basically just means it's always power of two if it's megabytes, whether it's power of two or a thousand it is up to whoever is marketing the thing so, but if you read MIB it's like power of two and you know what it's saying. So, we have that big address which was three FFFFFFF and then 008 so I'll just write the hex offset here as hex so those are the 12 lower bits so those are the offset that we don't have to translate so then the rest of them are index bits for nine so your first L1 index here would be 11111 which is the same as 511 so remember when you're translating these addresses you start off with a root page table which would be the highest level so your program would initially point to a L1 page table so in order for this to actually translate well, well let's assume that the root page table is at address seven thousand so it has to be aligned to a page so it would be at 11,000 and then the page table itself would have five or sorry, two to the nine entries which would be zero all the way to 511 and then since this is a page table one of the things it would have is the physical page number that corresponds to that entry so for this, the entry for 511 could be something like just eight so if it's eight and then what else would be in the page table entry? Yeah, there's some flags if it is one of the things that the hardware would need to actually follow the page tables as a valid bit so there'd probably be a valid bit here to say that hey, this entry is valid so since everything's aligned to a page in this one, the L1 index was 511 so it would go look up that in the L1 page table in this case it would show that hey, this is actually pointing to physical page number eight so we would look up another page table and the address of this page table would start at 8,000 because it's aligned at a page so now this would be our L0 page table so in the L0 page table there again would be the same number of entries so in this case it could have a physical page number of something like CAFE and be valid in that case this is an L0 if we look up our index from the address it was 511 as well so since this is an L0 table we can just directly translate it so what would our virtual address be? Or sorry, yeah, what would our physical address be that we're translating from this virtual address? Yeah, so the offset would stay the same because it's within a page so our physical address we followed it all the way to L0 so we just plop that in for the physical page number CAFE and then the offset was 008, yep yeah, so the question is how does that save space? So each of these smaller page tables they fit on a page so this takes up two pages and if we had a single big page table it would be two megabytes yeah, so this is two levels so the nine bits are here and then nine bits are here so if we just had one big table our index would be 18 bits, right? So if we have 18 bits that means we would have two of the 18 entries times two to the three which is the page table entry size, sorry yeah, so page table entry size is gonna have inside the page table entry is gonna be the ppn and flags yeah, so this would be two megabytes, yep so this, since it's a physical page number you assume that everything's page aligned so those like three hex characters would be 000 so that's why if it's eight here that's physical page number eight because whenever we translate addresses we never touch the offset as many as you need yeah, yep, yeah so this is why it saves because you just have as many L0 tables as you need for this so this corresponds to the next level of page table and you don't know what index you're even gonna be accessing so you assume it's aligned to a page and then you use the index from the address here which could be anywhere on that page it wouldn't correspond to 008 the index so because it's aligned on a page fits on a page you know where to access everything so if it's index zero it's the first one if it's index one it's byte four and so on and so forth yeah, yeah so L0 is gonna have to be allocated somewhere yeah, you're the operating system you can do what you want yeah, physical page number so which just says in the case where it's pointing to the lower level it's telling you the physical page number that lower level page table is on so 511 is the index from the virtual address so when we had, where are we? so when we had here our virtual address was 3FFFF008 so if we divide that and go back one so here it only goes up to L1 so this is the number of index bits for L1 and then the number of index bits for L0 so that's where they came from yeah, so you would have to the hardware would have to know how many levels are set up so these are different modes so in this case it would be like the 39 bit mode which knows it needs three levels if you wanted to have a 30 bit one which it doesn't support it would know that follow only two levels of page tables and you would have to set it up yeah, yes yeah, 08 is the physical address where that L0 page table is yeah, yeah, the page tables will only have physical addresses in them yeah, so all the, like in this case all the L1 physical page numbers they're going to correspond to still physical memory but it's going to be the physical memory where another page table is and it's all going to be in physical memory because the kernel is managing that so the kernel is managing all the physical memory yeah, all of them will tell you exactly where the physical address is well, it's 512 that point to another page table that you can have 512 of that point to another 512 so it's like exponential, right? It's like a big tree so you can support the same number of addresses yeah, yeah, in the worst case you're actually using more memory so in the worst case where you have to have an entry for every single thing all of your L0 page tables would be full so you'd have 512 of them which is 8 megabytes by itself and then you'd have one L1 page table to point to all of those so you'd waste an additional page if everything's full which would get even worse if you had three levels so you'd have, you know, 512 times 512 L1s or L0s, yeah, yeah unless you're like, unless you're visual studio code you don't use like gigabytes of memory yeah, yeah, the MMU would know what, how to, what mode it's in and you as a kernel have to make sure that your page table points to a lower level one and a lower level one and it knows that it only goes three deep in that case yeah, the offset at the end for which one, sorry? yeah, yeah so this 0, 0, 0 here? so it comes from the fact that all the page tables are going to be aligned to a page so if there are a lot, yeah, 12 bits which is 3 zeros in hex so they're all aligned to a page otherwise if they're not aligned to a page then it's like, oh, well where do I start? how do I access whatever index it's at? it just becomes a giant mess so if everything's fits on a page and is aligned to a page if you're the kernel you only have to deal with pages and everything past that is fairly easy and if you, and essentially if I do this translation and have this all set up well, if I want to translate the address so say I'm accessing like the next instruction that has an offset of 0, 0, 9 I mean it's going to do the exact same translation go through all of it and the physical address at the end of it is going to be C-A-F-E-0-0-9 and I'm not going to have to do new page table entries or anything like that so they're all going to be the same entry yeah, yeah, so well the kernel is going to try and minimize the number of tables there are so it will give you, that's why it gives you virtual addresses sequentially like your heap starts from the top and goes down so they're all going to be beside each other in these page tables so it's going to give you sequential virtual addresses to make this as small as possible yeah, yeah and there's only one root so there's two levels of page table you'll have an L1 and an L0 so you'll only have one L0 so that's the pointer that changes when it changes processes but if you have three levels where you have an L2 an L1 and an L0 you'll have one L2 and that's the pointer that changes no, it changes so that's your root page table oh, I got it yeah SATP is the risk five name for the root page table it stands for supervisor address translation and protection it's a very good name okay, so we did that so that was our example where we had one L1 page table with the entry index 511 with the physical page number 888 so that means since all the page tables are aligned at a page that there's an L1 page table located at 8000 and then it would have some entries in it hopefully it would have the entry for 511 with CAFE and it would be valid in that case the physical address would be CAFE008 mm-hmm yeah, if it's not valid it's gonna be a page fault and in that case in your user process you'll get a seg fault but we all know that seg fault names just silly because segmentations don't exist anymore yeah in this case the physical page number would be as much as there are in that entry so there's just a lot of leading zeros in this case if it is a 56 bit physical address there'd be 44 bits in there but all the leading ones are zero so if you're the kernel and you don't wanna make sure that you give the same virtual address to two or more processes no, like the same physical address they're the same physical address yeah, in general but so you wanna make sure that you don't map the same page to two different processes so you have to keep track of well we'll go into that if you're the kernel and you're allocating memory you allocate it in terms of pages so you give it, you map it and then you say it's used so you don't give it to anything else we'll talk, yeah, well that's next I think, yeah so processes use a register like SATP which was that stupid acronym to set the root page table for your process and then after that the MMU is going to use that page table to go and do the virtual address the physical address translation and there's a good comment too of like isn't this slow where I have to access memory to access memory again to maybe access memory again and then I get my physical memory where my information is actually and that's a good comment it is slow but first talk about the page allocation so it can just if the kernel only allocates in things of a page so it's actually really easy you just have a free list of pages so if you have when the kernel boots up it knows how much physical memory there are it would just divide the physical memory into pages and maintain a free list so on every single page it would just write out a pointer to the next one as part of the initialization process so it only needs to write a pointer every like four kilobytes so it could do that fairly fast and then you have a link list of your entire memory and then whenever yeah so then these are all unused so it'll just have some pointer to the next free one and that happens at boot and then whenever you need to grab a page you just look at the first page in your free list so you just look at the first page in your free list you map it and then it's not free anymore yep yep yeah kernels so memory allocation like your malloc and stuff like that that actually cares about different sizes that the kernel doesn't care so yeah malloc deals with it so malloc will only allocate heap so it will just make the heap bigger and the kernel does that in terms of just backing it with pages and then malloc figures out how to give you your eight bytes or whatever you need so a fun lab is to so malloc in that that's all user space fun lab you could do that I guess is in this course is you could write your own malloc because the kernel doesn't really care it just gives you heap and then says you manage the heap so yep there's a system call to increase the size of your heap but that's it and only does it in terms of pages sorry? you can decrease but it's gonna be hard because you have to have the bottom page filled to be able to decrease it or sorry you have to have the bottom page free to be able to decrease it so if there's still an allocation alive that's like in the middle or somewhere you can't free pages yep yeah for what why would you have to follow the chain yeah when the curl is going to put it into the page table the free list has a pointer to the next free one so it just picks that one that's the next page so that's it would just grab that page and then it would be an entry in the table yeah it just picks off the head of the list and says hey it's not there anymore and fills in that entry so if you need to back some memory you'd eventually get to L0 and you need to grab a page to correspond to that if there's not you'd grab it from the free list that's really quick you'd grab it from the top of the head you would populate that entry in your L0 page table and then you're done then if you need to allocate it it's also really easy if you're the kernel because you know what it maps to so you just say hey you're not valid anymore so then it wouldn't translate it anymore and then you can add it back to the free list so you just get your page back so your and allocating and deallocating pages is really really easy so the kernel can do that pretty easy um and yeah user space allocation is a lot harder and we'll talk about user space allocation later but the kernel gets it easy it just cares about pages so here's where yeah using page tables for every memory access is gonna be really slow because we have to follow pointers across multiple levels of page tables and likely you also use the same page multiple times so if you think of your C program you know your stack would be on a page so if you use one element on your stack you're probably gonna use the next element on the stack and then the one after that so why would you bother translating the same thing that translates to the same physical page number a thousand times when you know you're gonna use it over and over again and also some processes might only need a few virtual page number to physical page number mappings so we just pull out the classic solution and throw a cache on it so the cache for your MMU is called a TLB or translation look-aside buffer the image kind of sucks but basically all it is is there is a logical address up here which is the same as virtual and then there is a cache so it will check the check the virtual page number see if it's in the cache which is that ugly thing in the middle and then it would have the page number to frame number which is just the physical page number again this is where the terminology gets weird between people and if it's in the cache it just gives you that address back and then you have your physical address so you can access the memory if it's a miss then you have to go through that page table thing of going through if there's three levels of page tables you have to go through L2, L1, L0 and then the memory access so remember one of our goals was to make things really really quick and make it appear that using virtual memory is just as fast as physical memory so since there's a cache we can calculate whatever our effective access time is so in this case we could assume a single page table so there's only one additional memory access if we miss so the TLB hit time is if it's in our cache so it will take a small amount of time to check if it is actually in our cache so the time for our memory access if we have an entry in the cache is the amount of time it takes to search the cache and get it from it plus the time of the initial memory access itself and then if there's a miss well we still had to search the cache and then in this case we had to do two memory accesses so if there's only one level of page table we had to look up the page table find wherever that physical memory was and then go ahead and do the original access as well so if I had three levels of page table what would that be? Yeah Y3 Yeah N4 Yeah so you need if there were three levels of page tables there would be four memory accesses so one for each level of page table and your initial access so it gets really bad the more levels you have which is why on a 64-bit machine we only have a 39-bit virtual address because it's good enough and if we added another level it would be another level and it would be slower Yeah currently yeah but you can switch the mode on it so that's like the default mode of 39-bit on RIS 5 processors you can do 48 or 47-bit is supported and you're not going to get more than 47-bits of memory right now Okay and then to calculate your effective access time or your EAT it is alpha and alpha is just the proportion of cache hits so it's the proportion of hits times the time for a hit plus one minus alpha which is your miss ratio times the amount of time it takes for a miss so if you assume alpha is like 80% hits and your search time is 10 nanoseconds and your memory access is 100 nanoseconds well then our effective access time would be 0.8 times 110 for our search and our memory access plus 20% of the time we'd have to take two memory accesses and the search so our effective access time in this case would be 130 nanoseconds or like 30% slower than it would be if we just use physical memory which isn't great but it is way better than just having virtual memory without this cache because all of our accesses would be 200 nanoseconds in that case and realistically if we had the three level page table they would all be 400 nanoseconds which would be four times as slow so instead of being like four times as slow we're like 30% as slow so now too there is a problem with this cache whenever we're switching processes so if we switch processes and we don't do anything with the cache well if the new process I got context switched in happens to use the same virtual address and we don't do anything with the cache it would be a cache hit and then it would map to the old processes memory and then it could monkey around with that and bad things could happen so the simplest thing you can do is just invalidate the cache whenever you context switch so that it has to recalculate the virtual address for the new process which would work and it's a bit slow some implementations if hardware developers are nice to you in your TLB you can tag entries with a process ID to make them unique so you would tag a process ID with the virtual address so that when you context switch in and your new process happens to use the same virtual address it would have a new process ID so it wouldn't actually get the result of the last process so that's in some hardware but not really for risk five you have to explicitly flush the cache with that S-Fence instruction on x86 if you change the root page table pointer it automatically flushes the cache for you so you don't have to worry about it so another question too is how many levels of page tables do I need so it depends on the size of your virtual address so here's an example for like pre-2000 error when we had 32-bit processors so if we have a 32-bit virtual address and our page size of 4096 well since we're on a 32-bit machine our page table entry is only four bytes now because we have less memory it's only a 32-byte machine so we actually have more room for entries on a single page so again we want all of our lower level or all of our page tables to fit exactly on a page so in this case we can fit two to the ten page table entries on a page so each page is two to the twelve and now the page table entry is two to the two instead of two to the three so we can fit two to the ten entries now so the number of bits you need to index into the page is just like the log two of that of the number of page table entries per page which would be ten so in this case the number of levels we need is there's a round up of ceiling so the number of virtual bits minus offset bits so in this case it would be 32 minus 12 because that's our page size so which would be 20 divided by the number of index bits we need for each page table so in this case it would be ten so 20 divided by ten is two nice even number we don't have to round up so we need two levels but in this case if it was a 33 bit virtual address then we'd have 21 divided by ten which would be 2.1 so we'd have to round up and we'd need a third level of page tables which of course would make everything slower okay so to see that the TLB is actually a thing there is this fun little tool written by Linus Torvalds himself so he wrote this so it's definitely correct it gives you two arguments it will do an allocation of size size and then access that memory every stride bytes so if it stride is four it's gonna access every four bytes so byte zero four eight twelve sixteen so on so let's go ahead and see that so knowing what we know about the TLB why doesn't this work anymore so knowing what we know about the TLB whoops if we do this well we would allocate ourselves a page and then access every four bytes so if we do this this should be relatively fast why would this be really fast or relatively fast yeah yeah so it's all in the same page and that page would get cached so we allocated four thousand ninety six bytes and we accessed every four so if we do that we accessed memory one thousand twenty four times so since they're on the same page the first time we tried to access memory it wouldn't be in the cache so we'd have to follow the page tables and then do that but then after that since everything's on the same page there'd all be cache hits so it'd be fast so on the flip side if I allocate five hundred and twelve megabytes and then access memory every page this should be really really slow yeah it depends on the malloc implementation for that bank example I had I allocated like this much memory and it was like yeah no problem and then yeah when I tried to access it it crashed uh no so I actually have enough RAM to do this the other one it just kind of lied but if I increase this a lot more it would crash the same way so if I do this this is essentially no cache hits so I'm accessing every page so every single time I go through it's going to have to do go through all the page tables look it up and it is dog slow so it is 40 nanoseconds instead of like under two so this does have a big effect and this is also why you want to keep things as close as possible so if we do this one where we allocate 16 megabytes and access every 128 well it should be somewhere in between so if we run that get 11 nanoseconds which isn't great and that's because well within the same page we're doing 32 accesses so what the first access is a miss so we'll miss once and then we'll have 31 hits in a row and then miss 31 hits miss 31 hits so it depends on the size for the number of total accesses 1024 so the number of accesses is just you know oh i can't copy and paste the number of accesses is just side divided by stride so i don't i don't think they're all the same it's just how many measurements you take so it just takes the average of them so it's yeah so more measurements the more consistent your number would be but it'd be about the same yeah it's taking the average no this is the average time for memory accesses because 40 nanoseconds is really really fast okay so cycles so the smallest one was 6.6 cycles and this was on my machine so i ran again and it was a bit different so you can see it makes a vast difference so this is where you know the kernel only cares about so that's that s-brake instruction that just makes the heap bigger so it would grow or shrink the heap and that's it your stack has a set limit it would be like eight megabytes so for growing the kernel just grabs pages for you from a free list to fulfill it the kernel would set you know the page table entry valid do the mapping for you and then in memory allocators this interface sucks because you generally can never free memory again because you need to free the like last allocated page and you'd have to make sure that that's not being used anymore and in general that's not going to happen it'll just stay claimed by the process and waste memory but if you're a memory allocator a fun other system call you can make it's called mmap so that can bring in large blocks of memory at a time and then you can go ahead and free them because it'll be backed by pages so if you use a page and you know you're not using that page anymore you can go ahead and free it s-brake itself just gives just tells you the new address of your heap like the new bottom address yeah yeah if you call s-brake I guess we don't do a lab on it but if you call s-brake with null it tells you where the top is and then you can set the bottom with an argument so then you know how big it is so if you're malloc you're the one that makes those calls and you manage the heap and yeah so kernel initializes all that this we saw before I'll wrap up quick so it would also put like a guard page at your stack that doesn't map to anything that would make sure it didn't valid so instead of running through your stack and changing some random data instead it would generate a page fault and then kill your program so it doesn't just do wacky stuff so that's fun stuff you can do when you control pages yeah yeah we don't see that that's for more advanced courses you don't have to worry about trampoline yet the kernel can also do more fun stuff with virtual addresses so it can eliminate some system calls by just mapping memory so like clock get time won't do a system call it just maps in virtual memory that lets you read that value directly and you don't have to do a system call so it's nice and nice and fast especially when you have like a nanosecond timer and yeah page faults let the offering system do all that copy and write stuff I'll lazily allocate pages which is why it lets you allocate more memory than you have and then crash whenever you try and use it or do fun stuff like swapping that we'll see later so we saw page tables translate the addresses single large is wasteful multi levels save space for sparse allocations but slower kernel allocates from a free list and then the TLB speeds up that slow process so uh yeah that's pretty much it so if you want let me know and I can like do an example program of this and we can set up page tables ourselves if it doesn't quite make sense because sometimes this is confusing all right well with that have a good one and I'm pulling for you


I am finally back on campus, getting ready for the next part of the semester. Midterms was before fall break, but now I'm getting back into the routine of things. If you're new to the channel, welcome. I make videos about college, fashion, lifestyle, photography, and film. So if that sounds interesting, make sure you guys hit that subscribe button for more videos. But today's a video I've been wanting to make for a while now, and it's essentially the things that I wish I knew before my freshman year. It's crazy to believe that I'm already a sophomore and that the past year has flown by, but there are a lot of things that I wish I had known before I got into school that really would have just made the transition a lot easier and helped me adjust a lot faster. So that's what I'm going to be helping you guys out today. Let's hear the intro.   Buddy, that's not how it works. Like let me put it to you straight that you really have to learn how to humble yourself and that if you don't, college will teach you that real quickly. Regardless of whatever school you're at, no one cares that you are a valedictorian because especially at school like Princeton, trust me, there are at least maybe 20 other kids who are valedictorians from their high school that come here.  If you were some kind of quiz bowl champion or a debate national debater or whatever, like trust me, like no one really cares. And when you get to college, you realize that all your high school accomplishments, not that they weren't meaningful or that they didn't mean anything, but it's honestly like so insignificant. Like the things that you did in high school were cool and that you should keep to yourself. They're not really great conversation starters or things that you want to be bringing up like all the time. Like please, please, please never beat that kid at the dinner table that goes, oh yeah, back in high school, I did this or yeah, I remember my senior year of high school. I was this, I was prom queen and prom queen or whatever. Like you're quickly going to turn into that kid that never learned how to get out of high school and is still reminiscing about those days. So something that I learned very quickly was despite all the accomplishments I had in high school, coming to college, you realize, okay, what I did was cool, but there are hundreds of other kids who did the same thing as me or even cooler. So going around and like bragging about all your high school accomplishments or your awards or your trophies, like please, please, please do not do that. And trust me, it's going to make your college life just a lot easier and people are going to like you a lot better. Okay, number two, I've mentioned this so many of my videos, but you will have to learn how to manage your time. This is critical for you to not procrastinate, not fall behind in your classes and most importantly to enjoy your college experience so that you thrive instead of just struggle to get by every day. In high school, it might have been cute to be a procrastinator and do things the last minute, but in college it is so immature and like people look down on people who wait till the last minute to get their problem set or get ready for the test. Like people are like, what are you doing dude? Like you should be studying, you should be actually doing your work. And that's a good thing to have because you want people around you that are going to push you and cultivate you to become a better human being. And one big aspect of that is learn how to manage your time.  Like get it out of the way ahead of time so that you don't have that pressing in the back of your mind that, oh crap, I have an essay to be written.  Like do yourself a favor and just get ahead of that already. Number three, this is a lesson that I learned further on throughout the year and it's something that I wish I had known earlier, but it's that you don't always have to go out. Regardless of what your friends are saying or what your friend group is doing that weekend, like going out on a Thursday, Friday, Saturday night, like three nights in a row, that is a toll on your body and that's something that you should be doing every week, especially if you want to stay mentally and physically healthy for your classes and so that you can balance your extracurricular, still hang out and just grab dinner. Instead of just going out to the clubs or whatever you guys do at your school, staying up really late and then having to wake up really early for your classes, like that's not good to be doing continuously every weekend. I know people have FOMO, especially me, I hate being feeling like I'm left out, but if you realize that you don't always have to go out and you can do things with your friends in your dorm room, like just watching a movie and hanging out, you're just going to make your college experience a lot easier and not feel that pressure of always having to do something active and like be out on the weekends. Number four is you have to learn how to utilize your school's resources. At a school like Princeton, obviously there are dozens of resources offered, whether it's for tutoring or individual help or office hours or helping find internships or employment or connections or whatever the case is. Like look into what opportunities your school has to offer and seize them because at the end of the day, you're paying God knows what amount of money for your tuition that you might as well get the best bang for your buck, like utilize what that school has to offer. And honestly, the majority of my experiences I've had at Princeton, whether it's traveling or getting funding to get new equipment, like I'm filming on right now, like all I had to do was find the right people and ask and find a way to integrate it with my studies and what I'm pursuing at school so that they have some kind of reason that they're able to fund it. So that's a huge thing, like utilize your school's resources because they're going to be a huge helpful benefit for you to expand whatever you're trying to do. Number five, freshman year can be a beating. I know it's hard acclimating to this new environment where you feel like you don't have a friend group, you feel like you're homesick, you feel like the classes are super hard and that's why it's okay to not be okay. Like if you acknowledge and embrace the fact that you're not okay, you're going through something and you reach out to the right people and you talk about it and you find ways to cope with that, that's going to lead to you just being a better and healthier person because you have the self-awareness that you know that something's wrong with you and that you're seeking help, you're doing something about it.  I personally know that at times it gets hard, it gets difficult, and it feels like the whole world's just collapsing down on you and you don't know what to do. A sophomore year, just looking back on my previous year, I realized I should have done a better job of expressing my struggles and figuring out how I can cope with that and talking to someone. And since I've been through that, that's a huge tip that I wish I would have known before going into my freshman year. Number six, this is huge. Going to whatever school you're at, it is easy to feel like you're always comparing yourself to the person next to you who's doing better on your test or the person in the orchestra who plays way better than you or the athlete or whatever the case may be. Please, please, please do not compare yourself because especially at a big college campus, it's easy to get overwhelmed and it's easy to let that fear or negativity impact your current state of mind, you know? Comparison is a thief of all joy and if you constantly think about this person's better than me or I'm not doing as well as this person, that's a lot of time and energy wasted thinking about how you're comparing yourself to someone else, rather than thinking about how I can take that time and energy, invest it in myself and grow out of that and eventually become better than whoever you're comparing yourself to. Like, don't waste time dwelling on things that you can change and focus on yourself because at the end of the day, that's the most important thing. Number seven is keep your home a home. Now, this is kind of a tricky one to understand, but essentially when I left for college, I packed up everything I had in my room, all my clothes, all the things that I thought I would need, you know, my toiletries, everything. I basically packed up, brought over in a bunch of boxes and duffel bags and now being in my sophomore year, I realized I have so much clutter and things that I don't need and things that I should have just left at home because the worst feeling is you go home for break, you open up your closet and there's nothing there.  So having a closet at home that you can just come to for breaks and have all the things that you need and keeping your bedroom, essentially your bedroom and making your dorm room at school, your dorm room at school, right? What I mean by that is when you move into your dorm room, don't try and redo your bedroom at home in your college dorm room, make this into a different kind of space. So even being in my dorm room right now, this is way cozier than my bedroom at home because I have furniture, I have a huge TV, I have decorations and I feel more at home now what I'm here than I'm in my bedroom at home because I moved everything out. I know that's a long spiel but I hope you understand what I'm saying and let's move on to the next one. Number eight is super critical on something that I'm constantly working on and improving on and it's essentially taking time for yourself. College is busy and there are dozens of things going on at any time of the day and you constantly feel like you have to be doing something or going to this event or going to dinner with someone but in reality it's perfectly healthy and should be the norm to take time for yourself like devote a couple hours a week to just take time for yourself reflect and do the things that you want to do whether it's just binge watching Netflix, going on YouTube, watching your favorite YouTuber, going for a walk to clear your head, reading a book, it's super easy to get caught up in college and with your academic workload to think that you always have to be working, always have to be doing something and keeping yourself busy and that's good to a certain extent if you don't take the time to decompress and really focus on making yourself a better person like you're eventually gonna burn out and burning out is not what you want to be doing especially your first year of college so please take my advice and just take some time for yourself because it's gonna be super worth it at the end of the day okay that wraps it up for this video I hope you guys enjoyed my eight things that I wish I knew before coming into my freshman year like I said, freshman year is a difficult time because you're transitioning to this whole new part of your life and it's a big step and it's a big monumental milestone for you because at this point in your life going like being a freshman in high school or being a sixth grader like those aren't huge steps in your eventual lifetime career but anyways if you enjoyed this make sure you guys leave a comment down below I do appreciate the support subscribe for more videos and I will see you guys next time


His father, William Henry Gable, worked as an oil driller and farmer. Sadly, Clark's mother, Adlin, died when he was just 10 months old. As a child, his father remarried a woman named Jenny, who encouraged Clark's artistic interests, while his father pushed more traditionally masculine pursuits. As a teen, Gable dropped out of school to work in a tire factory, and at 17 he was inspired to act after seeing a play called The Bird of Paradise, but he couldn't pursue it until inheriting some money at 21. Gable then toured with small theater companies, eventually making it out west. In Portland, actress Laura Hope Cruz saw his potential.